Aracılığıyla paylaş


MSBuild Araç Takımı (ToolsVersion)

MSBuildbir uygulama oluşturmak için bir araç takımı görevler, hedefler ve araçlar kullanır. Genellikle, bir MSBuild microsoft.common.tasks dosya microsoft.common.targets dosya ve csc.exe ve vbc.exe derleyiciler araç kümesi içerir. Çoğu Toolsets .NET Framework'ün birden çok sürümü ve daha fazla sistem platform uygulamaları derlemek için kullanılır. Ancak, MSBuild 2.0 Toolset yalnızca .NET Framework 2. 0'ı hedeflemek için kullanılabilir.

ToolsVersion özniteliği

Araç Takımı'nda belirtmek ToolsVersion özniteliği Proje proje dosyasındaki öğesi. Aşağıdaki örnek proje MSBuild 2.0 araç takımını kullanarak oluþturulmasý gerektiðini belirtir.

<Project ToolsVersion="2.0" ... </Project>

ToolsVersion özniteliği nasıl çalışır?

Visual Studio'da bir proje oluşturmak veya varolan bir projeyi yükselttiğiniz zaman, bir öznitelik adlı ToolsVersion otomatik olarak eklenir projede dosya ve değeri karşılık gelen Visual Studio sürümü dahil .NET Framework sürümü için. Daha fazla bilgi için bkz. Belirli bir hedefleme.net Framework sürüm veya profil.

Zaman bir ToolsVersion değeri bir proje dosyasında tanımlanan, MSBuild proje için kullanılabilir Toolset özelliklerin değerlerini belirlemek için bu değeri kullanır. Bir araç kümesi özelliği $(MSBuildToolsPath), .NET Framework Araçları yolunu belirtir. Bu araç takımı özelliği (ya da $(MSBuildBinPath)), gereklidir.

Aşağıdaki örnekte, MSBuild kullanarak Microsoft.CSharp.targets dosyayı bulur MSBuildToolsPath özelliği ayrılmış.

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Değerini değiştirebileceğiniz MSBuildToolsPath özel bir araç kümesi tanımlayarak. Daha fazla bilgi için, Standart ve Özel Araç Takımı Yapılandırmaları

Komut satırında bir çözüm oluşturmak ve belirlemek ne zaman bir ToolsVersion MSBuild.exe'yi için tüm projeleri ve proje proje bağımlılıklarına göre yerleşik olan ToolsVersion, çözümdeki her proje kendi dahi, ToolsVersion. Tanımlamak için ToolsVersion her proje için ayrı ayrı değer için bkz: ToolsVersion ayarlarını geçersiz kılma.

ToolsVersion Özniteliği proje geçiş için de kullanılır. Visual Studio 2008 proje Visual Studio 2010'de açarsanız, örneğin, proje dosyasını ToolsVersion içerecek şekilde güncelleştirilmiştir "4.0" =. Sonra bu projeyi Visual Studio 2008'de açmaya çalışırsanız, yükseltilen tanımadığı ToolsVersion ve öznitelik, yine de 3.5 ayarlamak gibi olsa da bu nedenle projeyi oluşturur.

Visual Studio 2010 ve Visual Studio 2012 hem bir ToolsVersion 4.0 kullanın. Çoğu durumda, her iki sürümlerinde yapılmaksızın Visual Studio proje açabilirsiniz.

Bu konuda daha sonra açıklanan, Sub-toolsets, MSBuild hangi kullanmak için araçlar kümesi yapı çalıştığı içeriğine göre otomatik olarak geçiş izin verir. Örneğin, Visual Studio 2012 Visual Studio 2010'da açıkça proje dosyasını değiştirmek zorunda kalmadan çalışmaya çalýþtýrýldýðýnda, MSBuild yeni araçlar kümesi kullanır. Daha fazla bilgi için bkz. Nasıl: bir proje sistemi projeleri Visual Studio'nun birden çok sürümü yüklemek olacak şekilde değiştirin.

Araç takımı uygulama

Bir araç takımı çeşitli araçlar, hedefleri ve Toolset yapan görev yolları seçerek uygulamak. MSBuild tanımlar Toolset araçlarında aşağıdaki kaynaklardan gelen:

  • .net Framework klasör.

  • Yönetilen ek araçlar.

Yönetilen Araçlar ResGen.exe ve TlbImp.exe içerir.

MSBuild Toolset erişmek için iki yol sağlar:

Araçların yolları Toolset özelliklerini belirtin. MSBuild değerini kullanır ToolsVersion Toolset özelliklerini ayarlamak için kayıt defteri anahtarındaki bilgiler sonra kullanır ve karşılık gelen kayıt defteri anahtarını bulmak için proje dosyası özniteliği. Örneğin, ToolsVersion değeri 4.0, MSBuild Toolset özelliklerine göre bu kayıt defteri anahtarı ayarlar sonra: HKLM\Software\Microsoft\MSBuild\ToolsVersions\4.0.

Araç Takımı özellikleri şunlardır:

  • MSBuildToolsPath.net Framework Araçları yolunu belirtir.

  • SDK40ToolsPathMSBuild 4.0 için yönetilen ek araçlar yolunu belirtir.

  • SDK35ToolsPathMSBuild 3.5 için yönetilen ek araçlar yolunu belirtir.

Alternatif olarak, araç takımı programlı olarak yöntemlerini çağırarak belirleyebilirsiniz ToolLocationHelper sınıf. Sınıfı şu yöntemleri içerir:

Bb383796.collapse_all(tr-tr,VS.110).gifAlt toolsets

Bu konuda daha önce açıklandığı gibi MSBuild temel Araçlar yolunu belirtmek için bir kayıt defteri anahtarı kullanır. Bir alt anahtara sahip, MSBuild ek araçlar içeren bir alt-toolset yolunu belirtmek için kullanır. Bu durumda, her iki anahtar tanımlanmış özellik tanımları birleştirerek Toolset tanımlanır.

Not

Alt anahtar yolu için tanımlanmış değer Toolset özellik adları çakışıyorsa, kök anahtar yolu tanımlı değeri geçersiz kılar.

Sub toolsets, presence, etkin hale VisualStudioVersion özelliği oluşturun. Bu özellik şu değerlerden birini alabilir:

  • .net Framework 4 alt toolset "10.0" belirtir

  • .net Framework 4.5 sub toolset "11.0" belirtir

Bir yapı sırasında MSBuild otomatik olarak belirler ve ayarlar için varsayılan değer VisualStudioVersion , önceden tanımlanmış bir özellik.

MSBuild sağlar için aşırı ToolLocationHelper ekleme yöntemleri bir VisualStudioVersion değeri parametre olarak numaralandırılır. Buna ek olarak, MSBuild doğal ek araçların yolları dönmek için bu yeni yöntemler sağlar:

  • GetPathToWindowsSdk

  • GetPathToWindowsSdkFile

Bu yeni yöntemler de ele bir VisualStudioVersion değerini kullanmak için hangi alt toolset belirlemek için bir parametre olarak numaralandırılır. VisualStudioVersion Numaralandırma aşağıdaki değerlerden biri olabilir:

  • VisualStudio10

  • VisualStudio11

  • VisualStudioLatest

Sub toolsets .NET Framework 4. 5 ' kullanılmaya başlanmıştır.

Ayrıca bkz.

Kavramlar

Standart ve Özel Araç Takımı Yapılandırmaları

Diğer Kaynaklar

MSBuild Multitargeting genel bakış