use*_*216 10 c++ msbuild visual-studio-2010 vcxproj
我正在尝试使用许多解决方案运行复杂构建的纯x64构建(一些用于CI,一些用于开发人员)和数百个项目并且遇到"错误MSB8013:此项目不包含配置和平台组合的调试| Win32"
我把它简化为一个简单的配置:
没有任何项目或解决方案包含Win32平台 - 它已被删除.
当我构建解决方案B(作为x64)时,我收到了
错误MSB8013:此项目不包含Debug | Win32的Configuration和Platform组合
错误消息有时包含其他信息:
如果某个其他项目正在尝试遵循项目到项目对此项目的引用,此项目已卸载或未包含在解决方案中,并且引用项目不使用相同或等效项目构建,则也可能出现此错误配置或平台.
问题是参考项目确实 "使用相同或相当的配置或平台建设."
查看msbuild诊断,正在构建项目Y,因为项目X包含对它的项目引用.但是在构建项目Y之前,正在删除配置和平台属性:
1>Task "MSBuild" (TaskId:28)
1> Removing Properties: (TaskId:28)
1> Configuration (TaskId:28)
1> Platform (TaskId:28)
Run Code Online (Sandbox Code Playgroud)
因此,Microsoft.Cpp.Default.props启动并将这些设置为Debug | Win32:
1>Task "Message" (TaskId:11)
1> Configuration=Debug (TaskId:11)
1>Done executing task "Message". (TaskId:11)
1>Task "Message" (TaskId:12)
1> Platform=Win32 (TaskId:12)
1>Done executing task "Message". (TaskId:12)
Run Code Online (Sandbox Code Playgroud)
如何防止这种情况并使msbuild通过所选的配置和平台?
(我理解使用NuGet来管理包依赖性的最终解决方案,但这在短期内是不可行的)
一种修复方法是手动编辑 .vcxproj 文件来定义默认平台:
<平台条件="'$(平台)' == ''">x64</平台>
| 归档时间: |
|
| 查看次数: |
10995 次 |
| 最近记录: |