问题描述
我有三个 Visual Studio 解决方案.第一个配置为构建为Release,另外两个设置为构建为Debug.
I have three Visual Studio solutions. The first is configured to build as Release, and the other two are set to build as Debug.
当运行一个简单的 MSBuild 脚本明确说明要构建的配置(调试)时,第一个项目仍然是作为 Release 构建的.
When running a simple MSBuild script explicitly stating the configuration to build (Debug), the first project is still built as Release.
示例脚本:
<Target Name="Build">
<ItemGroup>
<ProjectToBuild Include="$(SolutionsPath)Solution1.sln"/>
<ProjectToBuild Include="$(SolutionsPath)CoreSolution2.sln"/>
<ProjectToBuild Include="$(SolutionsPath)UISolution3.sln"/>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)"
Targets="Rebuild"
Properties="Configuration=Debug;Platform=Any CPU"/>
</Target>
我已经尝试了上述的变体,例如以下,但我总是得到相同的结果.
I have tried variations of the above such as the following, but I always end up with the same result.
<Target Name="Build">
<ItemGroup>
<ProjectToBuild Include="$(SolutionsPath)Solution1.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
<ProjectToBuild Include="$(SolutionsPath)CoreSolution2.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
<ProjectToBuild Include="$(SolutionsPath)UISolution3.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)"
Targets="Rebuild"
Properties="Platform=Any CPU"/>
</Target>
我注意到有一个类似的问题,MSBuild 任务 - 构建失败,因为一个解决方案是在发布而不是调试中构建的,但这是特定于 TFS 和 Teambuild 的.我说的是纯 MSBuild 和一个从头开始创建的简单项目文件.
I note there is a similar question, MSBuild task - Build fails because one solution being built in release instead of debug, but that is specific to TFS and Teambuild. I am talking pure MSBuild with a simple project file created from scratch.
我该如何解决这个问题?
How can I fix this problem?
推荐答案
好的,我找到了问题.与 MSBuild 无关,而是正在构建的解决方案.发帖拯救别人的心痛.
OK I have found the issue. Nothing related to MSBuild, but instead the solution being built. Posting to save someone else the heartache.
无论出于何种原因,在解决方案中配置了调试配置,如下所示:
For whatever reason the Debug configuration was configured within the solution like so:
替代文字 http://www.freeimagehosting.net/uploads/cad0bdf1c0.jpg
所以 MSBuild 也只是在做它被告知的事情......
So MSBuild was only doing what it was told too...
这篇关于MSBuild 任务配置属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!