Compartilhar via


Itens comuns de projeto do MSBuild

No MSBuild, um item é uma referência nomeada a uma ou mais cadeias de caracteres, como nomes de arquivo. Os itens contêm metadados, como nomes de arquivo, caminhos e números de versão. Todos os tipos de projeto no Visual Studio têm vários itens em comum. Esses itens são definidos no arquivo Microsoft.Build.CommonTypes.xsd.

Este artigo lista todos os itens de projeto comuns definidos no próprio MSBuild. Itens e propriedades fornecidos pelo SDK do .NET são documentados na referência do MSBuild para Microsoft.Net.Sdk.

Reference

Representa uma referência de assembly .NET (gerenciado) no projeto.

Nome dos metadados do item Descrição
HintPath Cadeia de caracteres opcional. Caminho relativo ou absoluto do assembly.
Nome Cadeia de caracteres opcional. O nome de exibição do assembly, por exemplo, "System.Windows.Forms".
FusionName Cadeia de caracteres opcional. Especifica o nome de fusão simples ou forte para o item.

Quando esse atributo está presente, ele pode economizar tempo porque o arquivo de assembly não precisa ser aberto para obter o nome de fusão.
SpecificVersion Booliano opcional. Especifica se apenas a versão no nome de fusão deve ser referenciada.
Apelidos Cadeia de caracteres opcional. Qualquer aliases para a referência.
Privado Booliano opcional. Especifica se a referência deve ser copiada para a pasta de saída. Esse atributo corresponde à propriedade Copy Local da referência que está no IDE do Visual Studio.

Nota

O Reference tipo de item também pode ser usado para fazer referência a assemblies de wrapper pré-gerados para objetos COM nativos, por exemplo, se você usou tlbimp.exe para gerar um PIA (Assembly de Interoperabilidade Primário). Esse tipo de referência é uma opção apropriada quando você deseja pregenerar os assemblies de wrapper COM por conta própria com entradas conhecidas, em vez de depender do algoritmo do MSBuild para gerar wrappers COM no momento do build, o que introduz uma dependência do estado do registro do sistema no computador de build em que o MSBuild é executado.

COMReference

Representa uma referência de componente COM (não gerenciado) no projeto. Esse item é usado pela tarefa ResolveComReference, que gera os assemblies de wrapper ou, se EmbedInteropTypes for usado, insira os tipos de interoperabilidade em seu assembly. Usar esse tipo de referência introduz uma dependência no registro do sistema no computador de build, que é usado para pesquisar o objeto COM referenciado. Artefatos COM e entradas COM no registro podem ser alterados quando os produtos são instalados, atualizados ou desinstalados no computador (ou quando você executa o mesmo build em um computador diferente), potencialmente produzindo um assembly de wrapper diferente mesmo que a lógica de build não tenha sido alterada.

Este item não se aplica a projetos non-.NET.

Nome dos metadados do item Descrição
Nome Cadeia de caracteres opcional. O nome de exibição do componente.
GUID Cadeia de caracteres necessária. Um GUID para o componente, no formulário {12345678-1234-1234-1234-123456781234}.
VersionMajor Cadeia de caracteres necessária. A parte principal do número de versão do componente. Por exemplo, "5" se o número de versão completo for "5.46".
VersionMinor Cadeia de caracteres necessária. A parte secundária do número de versão do componente. Por exemplo, "46" se o número de versão completo for "5.46".
EmbedInteropTypes Booliano opcional. Se for true, insira os tipos de interoperabilidade dessa referência diretamente em seu assembly em vez de gerar uma DLL de interoperabilidade.
Lcid Cadeia de caracteres opcional. A LocaleID para o componente.
WrapperTool Cadeia de caracteres opcional. O nome da ferramenta wrapper usada no componente. Os valores são:

1. primário
2. tlbimp
3. primaryortlbimp
4. aximp
Isolado Booliano opcional. Especifica se o componente é um componente sem reg.

COMFileReference

Representa uma lista de bibliotecas de tipos a serem referenciadas por caminho de arquivo, em vez de usar o registro do sistema. Esse tipo de referência pode ser uma boa alternativa ao COMReference nos casos em que você deseja evitar uma dependência do registro do computador de build, seja porque a conta que executa o build não tem privilégios elevados para editar o registro no servidor de build ou não deseja que o build tenha uma dependência no estado do registro. Se você usar para fazer COMFileReference referência a um artefato em um caminho do sistema, o build terá uma dependência no estado do sistema. Se o artefato do sistema for alterado devido a uma alteração no estado do sistema, como quando os produtos são instalados, atualizados ou desinstalados (ou se você executar o mesmo build em um computador diferente), o assembly de wrapper poderá ser alterado, mesmo que a lógica de build não tenha sido alterada. Para garantir um resultado de build consistente, você pode armazenar em cache uma cópia conhecida do artefato COM em um local que você controla, como em seu projeto ou pasta de solução, e referenciar isso em vez do artefato do sistema.

Este item não se aplica a projetos non-.NET.

Nome dos metadados do item Descrição
EmbedInteropTypes Booliano opcional. Se for true, insira os tipos de interoperabilidade dessa referência diretamente em seu assembly em vez de gerar uma DLL de interoperabilidade.
WrapperTool Cadeia de caracteres opcional. O nome da ferramenta wrapper usada no componente. Os valores são:

1. primário
2. tlbimp
3. primaryortlbimp
4. aximp

NativeReference

Representa um arquivo de manifesto nativo ou uma referência a esse arquivo.

Nome dos metadados do item Descrição
Nome Cadeia de caracteres necessária. O nome base do arquivo de manifesto.
HintPath Cadeia de caracteres necessária. O caminho relativo do arquivo de manifesto.

Referência do projeto

Representa uma referência a outro projeto. ProjectReference os itens são transformados em itens de referência pelo destino, portanto, todos os ResolveProjectReferences metadados válidos em uma referência poderão ser válidos ProjectReference, caso o processo de transformação não o substitua.

Nome dos metadados do item Descrição
Nome Cadeia de caracteres opcional. O nome de exibição da referência.
GlobalPropertiesToRemove string[]opcional. Nomes de propriedades a serem removidas ao criar o projeto referenciado, por exemplo, RuntimeIdentifier;PackOnBuild. O padrão é vazio.
Projeto Cadeia de caracteres opcional. Um GUID para a referência, no formulário {12345678-1234-1234-1234-123456781234}.
OutputItemType Cadeia de caracteres opcional. Tipo de item para o qual emitir saídas de destino. O padrão está em branco. Se os metadados de referência estiverem definidos como "true" (padrão), as saídas de destino se tornarão referências para o compilador.
ReferenceOutputAssembly Booliano opcional. Se definido como false, não inclui a saída do projeto referenciado como uma referência deste projeto, mas ainda garante que o outro projeto seja compilado antes deste. O padrão é true.
Privado Booliano opcional. Especifica se a referência deve ser copiada para a pasta de saída. Esse atributo corresponde à propriedade Copy Local da referência que está no IDE do Visual Studio.
SetConfiguration Cadeia de caracteres opcional. Define a propriedade global Configuration para o projeto referenciado, por exemplo, Configuration=Release.
SetPlatform Cadeia de caracteres opcional. Define a propriedade global Platform para o projeto referenciado, por exemplo, Platform=AnyCPU.
SetTargetFramework Cadeia de caracteres opcional. Define a propriedade global TargetFramework para o projeto referenciado, por exemplo, TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Booliano opcional. Se true, criará o projeto referenciado sem negociar o valor de TargetFramework mais compatível. O padrão é false.
Alvos string[]opcional. Lista separada de ponto-e-vírgula de destinos nos projetos referenciados que devem ser criados. O padrão é o valor de $(ProjectReferenceBuildTargets), que usa como padrão vazio, indicando os destinos padrão. Ao criar no Visual Studio (em vez de MSBuild.exe ou dotnet build), especificar isso não impede que o Visual Studio crie os destinos padrão do projeto referenciado.

Nota

Há uma diferença entre como as referências de projeto funcionam entre o .NET Framework e o .NET Core (incluindo o .NET 5 e posterior). Em projetos do .NET Framework, as referências de projeto não são transitivas. Ou seja, se o Project1 fizer referência ao Project2 e o Project2 fizer referência ao Project3, você não poderá codificar no Project3 do Project1. No entanto, no .NET Core (incluindo .NET 5 e posterior), as referências de projeto são transitivas. Você pode codificar no Project3 no Project1.

Compilar

Representa os arquivos de origem para o compilador.

Nome dos metadados do item Descrição
Dependentes Cadeia de caracteres opcional. Especifica o arquivo do qual esse arquivo depende para compilar corretamente.
AutoGen Booliano opcional. Indica se o arquivo foi gerado para o projeto pelo IDE (ambiente de desenvolvimento integrado) do Visual Studio.
Ligação Cadeia de caracteres opcional. O caminho notacional a ser exibido quando o arquivo está fisicamente localizado fora da influência do arquivo de projeto.
Visível Booliano opcional. Indica se o arquivo deve ser exibido em do Gerenciador de Soluções no Visual Studio.
CopyToOutputDirectory Cadeia de caracteres opcional. Determina se o arquivo deve ser copiado para o diretório de saída. Os valores são:

1. Nunca
2. Sempre
3. PreserveNewest
4. IfDifferent

EmbeddedResource

Representa os recursos a serem inseridos no assembly gerado.

Nome dos metadados do item Descrição
Cultura Cadeia de caracteres opcional. Especifica a cultura do arquivo de recurso. Se especificado, o processo de build não infere automaticamente a cultura com base na extensão de arquivo (que depende das culturas disponíveis para .NET/SO no computador que hospeda o build). A configuração de metadados Culture={culture identifier} ou WithCulture=false é altamente recomendada.
WithCulture Bool opcional. Especifica que o arquivo é neutro em cultura e a detecção de cultura AssignCulture tarefa deve ser ignorada. A configuração de metadados Culture={culture identifier} ou WithCulture=false é altamente recomendada.
Dependentes Cadeia de caracteres opcional. Especifica o arquivo do qual esse arquivo depende para compilar corretamente
Gerador Cadeia de caracteres opcional. O nome de qualquer gerador de arquivo executado neste item.
LastGenOutput Cadeia de caracteres opcional. O nome do arquivo que foi criado por qualquer gerador de arquivos executado neste item.
CustomToolNamespace Cadeia de caracteres opcional. O namespace no qual qualquer gerador de arquivos executado neste item deve criar código.
Ligação Cadeia de caracteres opcional. O caminho notacional será exibido se o arquivo estiver fisicamente localizado fora da influência do projeto.
Visível Booliano opcional. Indica se o arquivo deve ser exibido em do Gerenciador de Soluções no Visual Studio.
CopyToOutputDirectory Cadeia de caracteres opcional. Determina se o arquivo deve ser copiado para o diretório de saída. Os valores são:

1. Nunca
2. Sempre
3. PreserveNewest
4. IfDifferent
LogicalName Cadeia de caracteres necessária. O nome lógico do recurso inserido.

Conteúdo

Representa arquivos que não são compilados no projeto, mas podem ser inseridos ou publicados junto com ele.

Nome dos metadados do item Descrição
Dependentes Cadeia de caracteres opcional. Especifica o arquivo do qual esse arquivo depende para compilar corretamente.
Gerador Cadeia de caracteres opcional. O nome de qualquer gerador de arquivo executado neste item.
LastGenOutput Cadeia de caracteres opcional. O nome do arquivo que foi criado por qualquer gerador de arquivos que foi executado neste item.
CustomToolNamespace Cadeia de caracteres opcional. O namespace no qual qualquer gerador de arquivos executado neste item deve criar código.
Ligação Cadeia de caracteres opcional. O caminho notacional a ser exibido se o arquivo estiver fisicamente localizado fora da influência do projeto.
PublishState Cadeia de caracteres necessária. O estado de publicação do conteúdo:

-Inadimplência
-Incluso
-Excluídos
-Datafile
-Pré-requisito
IsAssembly Booliano opcional. Especifica se o arquivo é um assembly.
Visível Booliano opcional. Indica se o arquivo deve ser exibido em do Gerenciador de Soluções no Visual Studio.
CopyToOutputDirectory Cadeia de caracteres opcional. Determina se o arquivo deve ser copiado para o diretório de saída. Os valores são:

1. Nunca
2. Sempre
3. PreserveNewest
4. IfDifferent
TargetPath Cadeia de caracteres opcional. O caminho de saída (relativo ao diretório de saída específico da configuração e/ou da plataforma) de um item, incluindo o nome do arquivo. Isso respeita os metadados Link, se fornecidos. Se o TargetPath não for fornecido, ele será computado durante o processo de build. Consulte AssignTargetPath.

Nenhum

Representa arquivos que não devem ter nenhuma função no processo de build.

Nome dos metadados do item Descrição
Dependentes Cadeia de caracteres opcional. Especifica o arquivo do qual esse arquivo depende para compilar corretamente.
Gerador Cadeia de caracteres opcional. O nome de qualquer gerador de arquivo executado neste item.
LastGenOutput Cadeia de caracteres opcional. O nome do arquivo que foi criado por qualquer gerador de arquivos executado neste item.
CustomToolNamespace Cadeia de caracteres opcional. O namespace no qual qualquer gerador de arquivos executado neste item deve criar código.
Ligação Cadeia de caracteres opcional. O caminho notacional a ser exibido se o arquivo estiver fisicamente localizado fora da influência do projeto.
Visível Booliano opcional. Indica se o arquivo deve ser exibido em do Gerenciador de Soluções no Visual Studio.
CopyToOutputDirectory Cadeia de caracteres opcional. Determina se o arquivo deve ser copiado para o diretório de saída. Os valores são:

1. Nunca
2. Sempre
3. PreserveNewest
4. IfDifferent

Metadados do assembly

Representa os atributos de assembly a serem gerados como [AssemblyMetadata(key, value)].

Nome dos metadados do item Descrição
Incluir Torna-se o primeiro parâmetro (a chave) no construtor de atributo AssemblyMetadataAttribute.
Valor Cadeia de caracteres necessária. Torna-se o segundo parâmetro (o valor) no construtor de atributo AssemblyMetadataAttribute.

Nota

Este item se aplica a projetos usando o SDK para .NET 5 (e .NET Core) e versões posteriores.

InternalsVisibleTo

Especifica os assemblies a serem emitidos como atributos de assembly [InternalsVisibleTo(..)].

Nome dos metadados do item Descrição
Incluir O nome do assembly.
Chave Cadeia de caracteres opcional. A chave pública do assembly.

Nota

Este item se aplica a projetos usando o SDK para .NET 5 (e .NET Core) e versões posteriores.

BaseApplicationManifest

Representa o manifesto do aplicativo base para o build e contém informações de segurança de implantação do ClickOnce.

CodeAnalysisImport

Representa o projeto FxCop a ser importado.

Importação

Representa assemblies cujos namespaces devem ser importados pelo compilador do Visual Basic.

Pasta

Esse elemento é usado apenas pelo Visual Studio como um espaço reservado para uma pasta vazia. Quando a pasta é preenchida, ela é substituída por outro elemento.

Consulte também