2016-05-10 34 views

回答

4

在解決方案文件的情況下 - 無論是的MSBuild和xbuild試圖找到Debug配置和Mixed platforms平臺,但如果不存在,那麼將回退到它可以在.sln文件中找到SolutionConfigurationPlatforms下的第一個。請記住,這只是解決方案級別配置/平臺,並且它使用.sln文件中的ProjectConfigurationPlatforms中的映射來確定用於項目的配置/平臺。

在項目文件的情況下,*proj文件通常具有指定的默認ConfigurationPlatform。但是如果即使缺少那麼Microsoft.Common.*targets文件也會選擇Debug|AnyCPU作爲默認值。

更新:在默認的csproj規範可能是這樣的:

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform> 
    ... 

它本質上說:「如果$(配置)是不確定的,然後將其設置爲Debug」,併爲平臺類似。

+0

csproj中如何指定默認的'Configuration'和'Platform'?您是否也碰巧知道微軟是否已將此行爲記錄在任何位置或需要挖掘「Microsoft.Common。* targets」和msbuild代碼以查找此信息?我的意思是我可以通過創建測試解決方案和項目文件來進行實驗,但我不想知道規則比我的實驗暴露的更復雜。 –

+0

瞭解構建配置:https://msdn.microsoft.com/en-us/library/kkz9kefa.aspx – radical

+0

謝謝,鏈接正是我一直在尋找的!也感謝您的更新,我完全忘了那些在每個項目文件中的權利在開始... –

相關問題