ToolsVersion ayarlarını geçersiz kılma
ToolsVersion
Visual Studio ve MSBuild proje dosyalarındaki Project öğesindeki özniteliği Visual Studio 2019 ve sonraki sürümlerde kullanım dışı olarak kabul edilir; bunu güvenle silebilirsiniz. Bu makalede, MSBuild'in eski sürümlerinde veya özel araç kümelerinde kullanımı açıklanmaktadır. Bkz. Standart ve özel Araç Takımı yapılandırmaları.
Projeler ve çözümler için araç takımını üç yoldan biriyle değiştirebilirsiniz:
Projeyi veya çözümü komut satırından
-ToolsVersion
oluştururken anahtarı (veya-tv
kısaca ) kullanarak.MSBuild görevinde parametresini ayarlayarak
ToolsVersion
.Bir çözüm içindeki
$(ProjectToolsVersion)
bir projede özelliğini ayarlayarak. Bu, diğer projelerden farklı bir Araç Takımı sürümüne sahip bir çözümde proje oluşturmanıza olanak tanır.
Komut satırı derlemelerinde projelerin ve çözümlerin ToolsVersion ayarlarını geçersiz kılma
Visual Studio projeleri genellikle proje dosyasında belirtilen ToolsVersion ile derlense de, bu değeri geçersiz kılmak ve tüm projeleri ve projeden projeye bağımlılıklarını farklı bir Araç Takımı ile oluşturmak için komut satırındaki (veya -tv
) anahtarını kullanabilirsiniz -ToolsVersion
. Örneğin:
msbuild.exe someproj.proj -tv:12.0 -p:Configuration=Debug
Bu örnekte, tüm projeler ToolsVersion 12.0 kullanılarak oluşturulur. (Ancak, bölümüne bakınBu konunun devamında öncelik sırası.)
Komut satırında anahtarı kullanırken -tv
, isteğe bağlı olarak tek tek projelerde özelliğini kullanarak $(ProjectToolsVersion)
bunları çözümdeki diğer projelerden farklı bir ToolsVersion değeriyle oluşturabilirsiniz.
MSBuild görevinin ToolsVersion parametresini kullanarak ToolsVersion ayarlarını geçersiz kılma
MSBuild görevi, bir projenin başka bir proje oluşturması için birincil araçlardır. MSBuild görevinin projede belirtilenden farklı bir ToolsVersion ile proje oluşturmasını sağlamak için adlı ToolsVersion
isteğe bağlı bir görev parametresi sağlar. Aşağıdaki örnekte bu parametrenin nasıl kullanılacağı gösterilmektedir:
projectA.proj adlı ve aşağıdaki kodu içeren bir dosya oluşturun:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0"> <Target Name="go" > <Message Text="projectA.proj" /> <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" /> <Message Text="MSBuildToolsPath: $(MSBuildToolsPath)" /> <MSBuild Projects="projectB.proj" ToolsVersion="2.0" Targets="go" /> </Target> </Project>
projectB.proj adlı ve aşağıdaki kodu içeren başka bir dosya oluşturun:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0"> <Target Name="go"> <Message Text="projectB.proj" /> <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" /> <Message Text="MSBuildToolsPath: $(MSBuildToolsPath)" /> </Target> </Project>
Komut istemine aşağıdaki komutu girin:
msbuild projectA.proj -t:go -toolsversion:3.5
Aşağıdaki çıkış görüntülenir. için
projectA
,-toolsversion:3.5
komut satırındaki ayar etiketindekiToolsVersion=12.0
Project
ayarı geçersiz kılar.ProjectB
içindeki bir görev tarafından çağrılırprojectA
. Bu görev, içinprojectB
diğerToolsVersion
ayarları geçersiz kılan öğesine sahiptirToolsVersion=2.0
.Output: projectA.proj MSBuildToolsVersion: 3.5 MSBuildToolsPath: C:\Windows\Microsoft.NET\Framework\v3.5 projectB.proj MSBuildToolsVersion: 2.0 MSBuildToolsPath: C:\Windows\Microsoft.NET\Framework\v2.0.50727
Öncelik sırası
Öncelik sırası, en yüksekten en düşüke, belirlemek ToolsVersion
için kullanılır:
ToolsVersion
Varsa, projeyi derlemek için kullanılan MSBuild görevindeki özniteliği.-toolsversion
Varsa, msbuild.exe komutunda kullanılan (veya-tv
) anahtarı.Ortam değişkeni
MSBUILDTREATALLTOOLSVERSIONSASCURRENT
ayarlandıysa geçerliToolsVersion
kullanın.Ortam değişkeni
MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT
ayarlanırsa veToolsVersion
proje dosyasında tanımlanan geçerli değerindenToolsVersion
büyükse geçerliToolsVersion
değerini kullanın.Ortam değişkeni
MSBUILDLEGACYDEFAULTTOOLSVERSION
ayarlandıysa veya ayarlanmadıysaToolsVersion
aşağıdaki adımlar kullanılır:Proje
ToolsVersion
dosyasının Project öğesinin özniteliği. Bu öznitelik yoksa, geçerli sürüm olduğu varsayılır.MSBuild.exe.config dosyasındaki varsayılan araçlar sürümü.
Kayıt defterindeki varsayılan araçlar sürümü. Daha fazla bilgi için bkz . Standart ve özel Araç Takımı yapılandırmaları.
Ortam değişkeni
MSBUILDLEGACYDEFAULTTOOLSVERSION
ayarlanmadıysa aşağıdaki adımlar kullanılır:Ortam değişkeni
MSBUILDDEFAULTTOOLSVERSION
var olan birToolsVersion
değerine ayarlanmışsa, bunu kullanın.MSBuild.exe.config içinde ayarlandıysa
DefaultOverrideToolsVersion
kullanın.Kayıt defterinde ayarlandıysa
DefaultOverrideToolsVersion
, bunu kullanın.Aksi takdirde geçerli
ToolsVersion
kullanın.
İlgili içerik
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin