Itens de projeto comuns do MSBuild

No MSBuild, um item é uma referência nomeada a um ou mais arquivos. Itens contêm metadados, como nomes de arquivos, 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 comuns do projeto.

Referência

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

Nome de metadados de item Descrição
HintPath Cadeia de caracteres opcional. O 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 da fusão.
SpecificVersion Booliano opcional. Especifica se apenas a versão no nome de fusão deve ser referenciada.
Aliases Cadeia de caracteres opcional. Quaisquer aliases da referência.
Privados Booliano opcional. Especifica se a referência deve ser copiada para a pasta de saída. Esse atributo corresponde à propriedade Copiar Local da referência que está no Visual Studio IDE.

COMReference

Representa uma referência a um componente COM (não gerenciado) no projeto. Este item se aplica somente a projetos .NET.

Nome de metadados de item Descrição
Nome Cadeia de caracteres opcional. O nome de exibição do componente.
Guid Cadeia de caracteres obrigatória. Um GUID para o componente, no formato {12345678-1234-1234-1234-123456781234}.
VersionMajor Cadeia de caracteres obrigató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 obrigató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. O LocaleID do componente.
WrapperTool Cadeia de caracteres opcional. O nome da ferramenta wrapper usada no componente. Os valores são:

1. principal
2. tlbimp
3. primaryortlbimp
4. aximp
Isolado Booliano opcional. Especifica se o componente é um componente sem registro.

COMFileReference

Representa uma lista de bibliotecas de tipos que alimentam o parâmetro TypeLibFiles do destino ResolveComReference. Este item se aplica somente a projetos .NET.

Nome de metadados de item Descrição
WrapperTool Cadeia de caracteres opcional. O nome da ferramenta wrapper usada no componente. Os valores são:

1. principal
2. tlbimp
3. primaryortlbimp
4. aximp

NativeReference

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

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

ProjectReference

Representa uma referência a outro projeto. Os itens ProjectReference são transformados em itens de Referência pelo destino ResolveProjectReferences, portanto, todos os metadados válidos em uma Referência podem ser válidos em ProjectReference, se o processo de transformação não substituí-los.

Nome de metadados de 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.
Project Cadeia de caracteres opcional. Um GUID para a referência, no formato {12345678-1234-1234-1234-123456781234}.
OutputItemType Cadeia de caracteres opcional. Tipo de item no qual emitir saídas de destino. O padrão é em branco. Se os metadados de referência forem 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. Assume o padrão de true.
Privados Booliano opcional. Especifica se a referência deve ser copiada para a pasta de saída. Esse atributo corresponde à propriedade Copiar Local da referência que está no Visual Studio IDE.
SetConfiguration Cadeia de caracteres opcional. Define a propriedade global Configuration do projeto referenciado, por exemplo, Configuration=Release.
SetPlatform Cadeia de caracteres opcional. Define a propriedade global Platform do projeto referenciado, por exemplo, Platform=AnyCPU.
SetTargetFramework Cadeia de caracteres opcional. Define a propriedade global TargetFramework do projeto referenciado, por exemplo, TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Booliano opcional. Se for true, compilará o projeto referenciado sem negociar o valor TargetFramework mais compatível. Assume o padrão de false.
Destinos string[] opcional. O ponto e vírgula separou a lista de destinos nos projetos referenciados que devem ser compilados. O padrão é o valor de $(ProjectReferenceBuildTargets), cujo padrão é vazio, indicando os destinos padrão. Ao compilar no Visual Studio (em oposição a MSBuild.exe ou dotnet build), especificar isso não impede que o Visual Studio crie os destinos padrão do projeto referenciado.

Observação

Há uma diferença entre como as referências de projeto funcionam no .NET Framework e no .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 Project1 fizer referência a Project2 e Project2 fizer referência a Project3, você não poderá codificar no Project3 do Project1. No entanto, no .NET Core (incluindo o .NET 5 e posterior), as referências de projeto são transitivas. Você pode codificar do Project1 no Project3.

Compilar

Representa os arquivos de origem do compilador.

Nome de metadados de item Descrição
DependentUpon 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.
Link Cadeia de caracteres opcional. O caminho de notação a ser exibido quando o arquivo está fisicamente fora da influência do arquivo de projeto.
Visible Booliano opcional. Indica se o arquivo no Gerenciador de Soluções deve ser exibido 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

EmbeddedResource

Representa os recursos a serem inseridos no assembly gerado.

Nome de metadados de item Descrição
DependentUpon 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 nesse item.
LastGenOutput Cadeia de caracteres opcional. O nome do arquivo criado por qualquer gerador de arquivo executado nesse item.
CustomToolNamespace Cadeia de caracteres opcional. O namespace no qual qualquer gerador de arquivo executado nesse item deve criar código.
Link Cadeia de caracteres opcional. O caminho de notação será exibido se o arquivo estiver localizado fisicamente fora da influência do projeto.
Visible Booliano opcional. Indica se o arquivo no Gerenciador de Soluções deve ser exibido 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
LogicalName Cadeia de caracteres obrigatória. O nome lógico do recurso inserido.

Sumário

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

Nome de metadados de item Descrição
DependentUpon 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 nesse item.
LastGenOutput Cadeia de caracteres opcional. O nome do arquivo criado por qualquer gerador de arquivo executado nesse item.
CustomToolNamespace Cadeia de caracteres opcional. O namespace no qual qualquer gerador de arquivo executado nesse item deve criar código.
Link Cadeia de caracteres opcional. O caminho de notação a ser exibido se o arquivo estiver localizado fisicamente fora da influência do projeto.
PublishState Cadeia de caracteres obrigatória. O estado de publicação do conteúdo, seja:

– Padrão
– Incluído
– Excluído
– DataFile
– Pré-requisito
IsAssembly Booliano opcional. Especifica se o arquivo é um assembly.
Visible Booliano opcional. Indica se o arquivo no Gerenciador de Soluções deve ser exibido 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
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 TargetPath não for fornecido, ele será calculado durante o processo de build. Confira AssignTargetPath.

Nenhum

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

Nome de metadados de item Descrição
DependentUpon 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 nesse item.
LastGenOutput Cadeia de caracteres opcional. O nome do arquivo criado por qualquer gerador de arquivo executado nesse item.
CustomToolNamespace Cadeia de caracteres opcional. O namespace no qual qualquer gerador de arquivo executado nesse item deve criar código.
Link Cadeia de caracteres opcional. O caminho de notação a ser exibido se o arquivo estiver localizado fisicamente fora da influência do projeto.
Visible Booliano opcional. Indica se o arquivo no Gerenciador de Soluções deve ser exibido 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

AssemblyMetadata

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

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

Observação

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

InternalsVisibleTo

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

Nome de metadados de item Descrição
Incluir O nome do assembly.
Chave Cadeia de caracteres opcional. Obtém a chave pública do assembly.

Observação

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

BaseApplicationManifest

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

CodeAnalysisImport

Representa o projeto do FxCop a ser importado.

Importar

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

Pasta

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

Confira também