MSBuild Toolset (ToolsVersion)
MSBuild usa um conjunto de ferramentas de tarefas, destinos, e as ferramentas criar um aplicativo.Normalmente, um conjunto de ferramentas de MSBuild inclui um arquivo de microsoft.common.tasks, um arquivo de microsoft.common.targets, e compiladores como csc.exe e vbc.exe.A maioria dos conjuntos de ferramentas podem ser usados para criar aplicativos a mais de uma versão do.NET Framework e mais de uma plataforma do sistema.Em o entanto, o kit de ferramentas de MSBuild 2,0 pode ser usado somente para direcionar o .NET Framework 2,0.
atributo de ToolsVersion
Especificar o kit de ferramentas de ToolsVersion no atributo no elemento de Projeto no arquivo de projeto.O exemplo a seguir especifica que o projeto deve ser compilado usando o kit de ferramentas do MSBuild 2,0.
<Project ToolsVersion="2.0" ... </Project>
Como o atributo de ToolsVersion funciona
Quando você cria um projeto em Visual Studio, ou atualiza um projeto existente, um atributo chamado automaticamente ToolsVersion está incluído no arquivo de projeto e seu valor corresponde à versão do.NET Framework que está incluída na edição Visual Studio.Para obter mais informações, consulte Almejando um específico.NET Framework versão ou perfil.
Quando um valor de ToolsVersion é definido em um arquivo de projeto, usa MSBuild que avalia para determinar os valores das propriedades do kit de ferramentas que estão disponíveis para o projeto.Uma propriedade do kit de ferramentas é $(MSBuildToolsPath), especificando o caminho de ferramentas do .NET Framework.Somente a propriedade do kit de ferramentas $(MSBuildBinPath)(ou), são necessários.
Em o exemplo, o MSBuild localizar o arquivo de Microsoft.CSharp.targets usando a propriedade MSBuildToolsPath reservada.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
você pode alterar o valor de MSBuildToolsPath definindo um conjunto de ferramentas personalizado.Para obter mais informações, consulte Configurações padrão e personalizadas do Toolset
Quando você cria uma solução na linha de comando e especifica ToolsVersion para msbuild.exe, todos os projetos e suas dependências de projeto-a-projeto são compilados de acordo com o ToolsVersion, mesmo se cada projeto na solução especificar seu próprio ToolsVersion.Para definir o valor de ToolsVersion em uma base de projeto, consulte Substituindo configurações ToolsVersion.
O atributo de ToolsVersion também é usado para migração do projeto.Por exemplo, se você abrir um projeto Visual Studio 2008 no Visual Studio 2010, o arquivo de projeto é atualizado para incluir ToolsVersion=” 4,0 ".Se você tentar abrir o projeto no Visual Studio 2008, não reconhece ToolsVersion atualizado e portanto não compilar o projeto como se o atributo foi ainda definido como 3,5.
O Visual Studio 2010 e Visual Studio 2012 usam um ToolsVersion de 4,0.Em muitos casos, você pode abrir o projeto em ambas as versões do Visual Studio sem alteração.
os conjuntos subelemento de ferramentas, que são descritas posteriormente em este tópico, permitem que o MSBuild alterne automaticamente que define as ferramentas para usar com base no contexto no qual a compilação estiver sendo executada.Por exemplo, o MSBuild usa um conjunto mais recente de ferramentas quando é executado no Visual Studio 2012 do que quando é executado no Visual Studio 2010, sem ter que alterar explicitamente o arquivo de projeto.Para obter mais informações, consulte Como: modificar um sistema de projeto para que a carga de projetos em várias versões do Visual Studio.
Implementação do kit de ferramentas
Implementar um conjunto de ferramentas selecionando os caminhos das várias ferramentas, destinos, e tarefas que compõem o kit de ferramentas.As ferramentas do kit de ferramentas do MSBuild que define vêm das seguintes fontes:
A pasta do .NET Framework.
Ferramentas adicionais gerenciados.
As ferramentas e gerenciados incluem ResGen.exe TlbImp.exe.
MSBuild fornece duas maneiras para acessar o conjunto de ferramentas:
Usando as propriedades do kit de ferramentas
usando métodos de ToolLocationHelper
As propriedades do kit de ferramentas especificam os caminhos das ferramentas.MSBuild usa o valor do atributo de ToolsVersion no arquivo de projeto para localizar a chave do Registro correspondente e em seguida, usa informações da chave do Registro para definir as propriedades do kit de ferramentas.Por exemplo, se ToolsVersion tem o valor 4.0, então o MSBuild define as propriedades do kit de ferramentas de acordo com essa chave do Registro: HKLM\Software\Microsoft\MSBuild\ToolsVersions\4.0.
Essas são propriedades do kit de ferramentas:
MSBuildToolsPath especifica o caminho de ferramentas do .NET Framework.
SDK40ToolsPath especifica o caminho de ferramentas gerenciados adicionais para MSBuild 4,0.
SDK35ToolsPath especifica o caminho de ferramentas gerenciados adicionais para MSBuild 3,5.
Como alternativa, você pode determinar o kit de ferramentas de programação chamando os métodos da classe de ToolLocationHelper .A classe inclui esses métodos:
oGetPathToDotNetFramework retorna o caminho da pasta do .NET Framework.
oGetPathToDotNetFrameworkFile retorna o caminho de um arquivo na pasta do.NET Framework.
oGetPathToDotNetFrameworkSdk retorna o caminho da pasta gerenciado de ferramentas.
oGetPathToDotNetFrameworkSdkFile retorna o caminho de um arquivo, que está localizado na pasta normalmente gerenciado de ferramentas.
subelemento conjuntos de ferramentas
Como descrito anteriormente em este tópico, MSBuild usa uma chave do Registro para especificar o caminho de ferramentas básicas.Se a chave tem uma subchave, MSBuild use para especificar o caminho do subelemento conjunto de ferramentas que contém ferramentas adicionais.Em esse caso, o kit de ferramentas é definido combinando as definições de propriedades que são definidas em ambas as chaves.
Observação |
---|
Se os nomes de propriedade do kit de ferramentas colidem, o valor que é definido para o caminho da subchave substitui o valor que é definido para o caminho de chave raiz. |
os conjuntos subelemento de ferramentas tornam-se ativos a presença de propriedade de compilação de VisualStudioVersion .Esta propriedade pode ter um de esses valores:
“10,0” especificam o subelemento kit de ferramentas do .NET Framework 4
“11,0” especificam o subelemento kit de ferramentas do .NET Framework 4,5
Durante a criação, MSBuild determina automaticamente e definir o valor padrão para a propriedade de VisualStudioVersion se ainda não estiver definido.
MSBuild fornece sobrecargas para os métodos de ToolLocationHelper que adicionam um valor enumerado VisualStudioVersion como um parâmetro.Além de isso, o MSBuild fornece esses novos métodos para retornar os caminhos de ferramentas nativos adicionais:
GetPathToWindowsSdk
GetPathToWindowsSdkFile
Esses novos métodos também têm um valor enumerado VisualStudioVersion como um parâmetro para determinar que subelemento conjunto de ferramentas para usar.A enumeração de VisualStudioVersion pode ter um dos seguintes valores:
VisualStudio10
VisualStudio11
VisualStudioLatest
os conjuntos subelemento de ferramentas foram introduzidos no .NET Framework 4,5.
Consulte também
Conceitos
Configurações padrão e personalizadas do Toolset