4

我在 Visual Studio 2010 下启动了一个新的 C++ 项目,在更改项目属性->配置属性->链接器->常规下的输出文件设置后,我遇到了警告 MSB8012。默认情况下是 $(OutDir)$(TargetName)$(TargetExt)),但我需要将其更改为$(OutDir)Bin\$(ConfigurationName)\$(TargetName)$(TargetExt).

如果我这样做,我会遇到上述警告。我在 Visual Studio 2005 和 2008 下从未遇到过这个问题。

错误消息告诉我,我的 TargetPath 与链接器的 OutputFile 属性值不匹配。解析后的命令行看起来与我想要的完全一样,但 TargetPath 值缺少该Bin\$(ConfigurationName)部分。TargetPath 属性值究竟在哪里设置/组装?

消息包含To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).这是否意味着 OutputFile 属性只能具有其默认值?

如何在不重置输出文件属性或使用一些愚蠢的解决方法的情况下解决此警告?

4

1 回答 1

5

您可以使用配置属性 + 常规、输出目录设置来解决此问题。将其更改为

$(SolutionDir)Bin\$(ConfigurationName)

并保持链接器设置不变。此设置更改会修改 $(OutDir) 的值并保持 MSBuild 满意。

于 2010-11-08T14:32:47.290 回答