【发布时间】:2018-06-04 00:27:09
【问题描述】:
它发生在一个复杂的解决方案中,但我可以在一个新的空解决方案中重现它。
我使用调试模式、X86、诊断构建它 (ctrl+shift+B)。
1> 设置属性:_InvalidConfigurationMessageText=OutputPath 没有为项目“ConsoleApplication1.vcxproj”设置属性。请 检查以确保您指定了有效的组合 此项目的配置和平台。配置='调试' 平台='Win32'。 1> 设置属性: _InvalidConfigurationMessageText=没有为项目“ConsoleApplication1.vcxproj”设置 OutputPath 属性。请检查以确保 您已指定配置和 该项目的平台。配置=“调试”平台=“Win32”。 此错误也可能出现在其他一些项目中 正在尝试遵循 对这个项目的项目到项目引用,这个项目已经 已卸载或未包含在解决方案中,以及引用 项目不使用相同或等效的配置构建 或平台。
这是我尝试过的。
首先,我的.vcxproj (link to the full file) 的一部分看起来像这样:-
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
### I will insert something here ###
</PropertyGroup>
-
根据a SO link 和another one,我应该在
###插入这些行之一:-<OutputPath>$(Configuration)\$(Platform)\</OutputPath> <OutputPath>$(SolutionDir)$(Configuration)\</OutputPath> <OutputPath>bin\$(Platform)\</OutputPath> 同上,但添加到
<ItemGroup Label="ProjectConfigurations">删除
Label="Configuration"。根据another SO link,我也试过
AnyCPU或Any CPU(在更复杂的解决方案中测试,但新的空解决方案没有。)。-
A Microsoft link 声明
Output Path代表C#。在C++中,我必须使用Output Directory。它是OutDir。<OutDir>$(SolutionDir)$(Configuration)\</OutDir> <OutDir>$(Configuration)\$(Platform)\</OutDir> 执行上述操作,但在属性表中。
做上面的事情,还要unloaded-reload项目,甚至重启VS2017。
在我尝试了所有组合之后,警告仍然存在。
程序可以正确编译运行,
但我认为这是在更大的解决方案中不必要的重新编译的原因。
问题:如何解决警告/错误?
OutputPath 控制台中的字很可疑。
我怀疑 VS 将我的解决方案识别为C#。 (有可能吗?-我的测试项目有std::cout)
由于某些原因,大多数关于此错误的 SO 问题都与 msbuild 或 C# 或 .net (another one) 相关,而不是 C++。 p>
回复
组合框中没有Win32这样的选项,所以我新建了一个。Configuration Manager > Active solution platform : <New...>
但是,我仍然收到相同的错误消息。
【问题讨论】:
-
.vcxproj 文件中缺少它并不罕见,它依赖于默认值。默认值由工具集确定,在我的机器上它位于 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141\Toolset .props
-
@Hans Passant:我在
...\Common7\IDE\VC\VCTargets\Platforms\Win32\PlatformToolsets\v141中找到了 2 个文件。他们是Toolset.props和Toolset.targets。我的测试.vcxproj包含<PlatformToolset>v141</PlatformToolset>(一致)。我不确定我能做些什么。 -
奇怪,几年后,我不再有问题了。它可能与项目重新定位和从头开始重新创建每个配置有关。
标签: c++ visual-studio build