是否可以從MSBuild中構建包含x86和「任何cpu」項目的解決方案的所有項目?使用MSBuild構建包含x86和「任何cpu」項目的解決方案的所有項目
理想情況下,我想要一個無論項目是否具有多個平臺都可以工作的解決方案,因爲當您添加一個默認爲x86的項目時通常並不明顯,而且您必須花費大量時間來弄清爲什麼項目未建成。
是否可以從MSBuild中構建包含x86和「任何cpu」項目的解決方案的所有項目?使用MSBuild構建包含x86和「任何cpu」項目的解決方案的所有項目
理想情況下,我想要一個無論項目是否具有多個平臺都可以工作的解決方案,因爲當您添加一個默認爲x86的項目時通常並不明顯,而且您必須花費大量時間來弄清爲什麼項目未建成。
如果您的解決方案具有要針對多個平臺,它可以定義多種配置打造您的tfsbuild.proj文件:
<ItemGroup>
<ConfigurationToBuild Include="$(BuildFlavour)|Any CPU">
<FlavorToBuild>$(BuildFlavour)</FlavorToBuild>
<PlatformToBuild>Any CPU</PlatformToBuild>
</ConfigurationToBuild>
<ConfigurationToBuild Include="$(BuildFlavour)|x86">
<FlavorToBuild>$(BuildFlavour)</FlavorToBuild>
<PlatformToBuild>x86</PlatformToBuild>
</ConfigurationToBuild>
</ItemGroup>
的MSBuild和TFSBuild將建立匹配,要麼任何項目配置。
嘗試使用稱爲「混合平臺」的解決方案級平臺。 See this post。
msbuild.exe MixedProjects.sln /p:"Platform=Mixed Platforms" /p:Configuration=Debug
是否要將所有內容都構建爲「任何CPU」或「x86」? – 2012-02-28 14:21:47
我想將「任何CPU」解決方案構建爲「任何CPU」,將x86解決方案構建爲x86。如果它與VS中內置的項目一樣,它會很好。 – Helephant 2012-02-28 14:25:46
最大的問題是你需要知道MSBuild有這種怪癖,否則你會浪費大量時間來弄清楚爲什麼這個項目沒有建立。 – Helephant 2012-02-28 14:26:36