MSBuild seçmiyor, ancak MSBuild projesini oluşturduğu proje belirli özellikleri varsayılan olarak ayarlayabilir. Sorunun, MSBuild'in bir çözüm dosyası oluşturmasıyla ilgili olduğunu varsayıyorum.
msbuild.exe "somesolution.sln" /t:Build
Çözümü oluşturan projelere bakmanız gerekiyor, orada ayarlanan özellikleri göreceksiniz. Örneğin muhtemelen proje dosyasının en azından aşağıdaki göreceksiniz:
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
...
</PropertyGroup>
Bu diğerleri arasında iki özelliği, Configuration
ve Platform
içeren PropertyGroup
göstermektedir. Değerleri Condition
'a göre ayarlanır. Durum, "Configuration
" özelliği için herhangi bir değer ayarlanmamışsa, varsayılan olarak 'Hata Ayıklama' yapması gerektiğini belirtir. Benzer şekilde, Platform
için hiçbir şey ayarlanmamışsa, varsayılan olarak AnyCPU
olmalıdır.
Ayrıca görebilirsiniz bir Conditional
PropertyGroup
:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
...
</PropertyGroup>
Ne bu durum diyor mülkiyet Configuration
ve Platform
maç Debug
ve AnyCPU
o zaman içinde bulunan özelliklerin tümünü geçerli olmalıdır eğer olmasıdır.
Dikkat edilmesi gereken bir nokta, özellik adlarının yalnızca rastgele bir ad olması ve değerlerin yalnızca dizeler olmasıdır. Ancak .Net projeleri oluşturulurken, bu özelliklerin ve değerlerinin bir parçası olduğu bir sözleşme var. Varsayılan değerlerin ne olduğunu görmek için her projeyi bir metin düzenleyicide açmanız gerekmez. Visual Studio'ya gidebilir ve çözüm konfigürasyonuna bakabilirsiniz.
+1. Projeler için tüm AnyCPU yapılandırmalarını kaldırmıştı, ancak MSBuild hala oluştururken AnyCPU seçmeye çalışıyordu. AnyCPU yapılandırmasını çözümden sildi ve şimdi istediğimi x86 seçiyor. – reduckted
'Win32' C++ projeleri içindir, ancak soru C# projeleriyle ilgilidir, çünkü x # için bahseder; –