我有三个Visual解决方案。第一个被配置为构建为发行版,另外两个被设置为Debug。
当运行一个简单的MSBuild脚本显式地声明要构建的配置(Debug)时,第一个项目仍然作为发行版构建。
示例脚本:
<Target Name="Build">
<ItemGroup>
<ProjectToBuild Include="$(SolutionsPath)\Solution1.sln"/>
<ProjectToBuild Include="$(SolutionsPath)\Core\Solution2.sln"/>
<ProjectToBuild Include="$(SolutionsPath)\UI\Solution3.sln"/>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)"
Targets="Rebuild"
Properties="Configuration=Debug;Platform=Any CPU"/>
</Target>我已经尝试了上述的变化,如以下,但我总是以相同的结果结束。
<Target Name="Build">
<ItemGroup>
<ProjectToBuild Include="$(SolutionsPath)\Solution1.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
<ProjectToBuild Include="$(SolutionsPath)\Core\Solution2.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
<ProjectToBuild Include="$(SolutionsPath)\UI\Solution3.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)"
Targets="Rebuild"
Properties="Platform=Any CPU"/>
</Target>我注意到,有一个类似的问题,https://stackoverflow.com/questions/474403,但这是特定于TFS和团队建设。我说的是纯MSBuild,它有一个从零开始创建的简单项目文件。
我怎样才能解决这个问题?
发布于 2009-04-08 11:21:05
好的,我发现了这个问题。与MSBuild无关,而是正在构建的解决方案。为了拯救别人的心痛而发帖。
无论出于什么原因,调试配置都是在解决方案中配置的,如下所示:
alt文本http://www.freeimagehosting.net/uploads/cad0bdf1c0.jpg
所以MSBuild也只是照他们说的做.
发布于 2012-01-03 22:10:28
关于平台(任何cpu )的拼写问题,事实证明存在一个问题,已经在StackOverflow和微软的其他地方报道过了。它一般会影响MSBuild,在我的DotNetV3.5 MSBuild /help中省略了整个Platform文档。所以也许这会对某人有帮助!
链接
解决方案和项目之间“任意CPU”的MSBuild不一致平台
Closed as Won't Fix
Type: Bug
ID: 503935
Opened: 10/26/2009 1:29:12 PM
Access Restriction: Public
0 Workaround(s)
5 User(s) can reproduce this bug MSBuild Platform属性有一个不同值的Any CPU值,这取决于您是构建解决方案还是构建项目。
Platform="Any CPU" -Platform="AnyCPU" -发布于 2010-07-09 02:53:44
我也犯了同样的错误。解决方案是显式地指定目标平台,包括:
msbuild.exe /p:Platform="Any CPU"这是在我升级到windows 7之后才开始发生的,所以我想这与此有关。
https://stackoverflow.com/questions/721173
复制相似问题