VC++ 2010 - 向解决方案中的单个项目添加配置无法构建

6
我有以下情况:
我有一个包含约20个C++项目的解决方案。其中大部分是静态库,少数是 DLL 和一些可执行文件。该解决方案有两种配置 - Debug 和 Release,以及两种平台 - Win32 和 x64。一直以来都一切正常。
现在我想要针对特定静态库(lib_core)实现两种不同的行为 - X 和 Y。因此,在这个库代码中添加了一些 #ifdef,并加入了一个名为 USE_X 的宏定义。我创建了一个新的解决方案配置“Release_X”,基于“Release”,并将“Release”重命名为“Release_Y”。
接下来,我对lib_core项目配置执行了相同的操作,将相关项目配置分配给相同的解决方案配置,并将宏 USE_X 添加到 Release_X 项目配置中。
所有其他项目(其中有些甚至不是我的,所以无法更改它们)仍然使用 Release 和 Debug 配置。
现在当我尝试构建项目(以及仅清理/重新构建,以防万一)- lib_core 构建失败,显示如下信息:
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(283,5): 
error MSB8013: This project doesn't contain the Configuration and Platform combination of Release|Win32.

这里有什么问题?

我该如何使它工作?

4个回答

3
显然,我只需要卸载这个项目并重新加载它,一切都开始正常工作了。我猜关闭和重新打开VS也会起同样的作用。
当我将MSBuild输出更改为诊断模式时,我发现该项目的配置被定义为“Release”。卸载并重新加载后问题得到解决。

0

我遇到了相同的错误,原因是项目设置文件中的“ProjectConfiguration Include”和“Configuration”之间存在差异。 请尝试使用Visual Studio项目设置检查“.vcxproj”文件。

错误文本:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(61,5): error MSB8013: This project doesn't contain the Configuration and Platform combination of Debug static library|Win32.

带有错误的文件项目设置示例:

<ProjectConfiguration Include="Debug static library test|Win32">
  <Configuration>Debug static library</Configuration>
  <Platform>Win32</Platform>
</ProjectConfiguration>

一个没有错误的项目设置文件示例:

<ProjectConfiguration Include="Debug static library|Win32">
  <Configuration>Debug static library</Configuration>
  <Platform>Win32</Platform>
</ProjectConfiguration>

0

右键单击您的项目,选择“属性”,然后单击“配置管理器”按钮。

您应该能够指定每个解决方案配置和平台应使用哪个“配置”来进行lib_core项目。

我成功地使用它使VS在以Debug模式构建解决方案时构建一个Release模式的项目。


谢谢您的回答,但我已经正确配置了 - 这就是我所说的“将相关项目配置分配给相同的解决方案配置”。 - Asaf
@Asaf 搜寻问题解决办法:请检查所有项目依赖项是否被选择为该解决方案配置的构建对象 - manuell

0

如果项目在“常规属性” ->“框架和引用”下有任何引用,请将其删除并重新添加。这对我很有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接