在构建解决方案文件或项目文件时,msbuild默认使用什么配置和平台

时间:2016-05-10 20:16:22

标签: msbuild

如果我使用我的解决方案文件或项目文件作为输入从命令行执行msbuild而不设置配置和平台msbuild如何确定解决方案或单个项目文件中的每个项目使用哪个配置和平台?

1 个答案:

答案 0 :(得分:7)

如果是解决方案文件 - msbuild和xbuild都会尝试查找Debug配置和Mixed platforms平台,但是如果它不存在那么它会回落到第一个它可以在SolutionConfigurationPlatforms文件中的.sln下找到。请记住,这只是解决方案级别配置/平台,它使用ProjectConfigurationPlatforms文件中.sln中的映射来确定用于<的}平台的配置/平台EM>项目

如果是项目文件,*proj文件通常会指定默认的ConfigurationPlatform。但如果缺少那么,Microsoft.Common.*targets文件会选择Debug|AnyCPU作为默认值。

更新:csproj中的默认规范可能如下所示:

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

它基本上是说&#34;如果$(配置)未指定,则将其设置为Debug&#34;,类似于Platform。