【问题标题】:The OutputPath property is not set for project (C++, blank new solution, VS2017)未为项目设置 OutputPath 属性(C++,空白新解决方案,VS2017)
【发布时间】:2018-06-04 00:27:09
【问题描述】:

它发生在一个复杂的解决方案中,但我可以在一个新的空解决方案中重现它。

我使用调试模式、X86、诊断构建它 (ctrl+shift+B)。

1> 设置属性:_InvalidConfigurationMessageText=OutputPath 没有为项目“ConsoleApplication1.vcxproj”设置属性。请 检查以确保您指定了有效的组合 此项目的配置和平台。配置='调试' 平台='Win32'。 1> 设置属性: _InvalidConfigurationMessageText=没有为项目“ConsoleApplication1.vcxproj”设置 OutputPath 属性。请检查以确保 您已指定配置和 该项目的平台。配置=“调试”平台=“Win32”。 此错误也可能出现在其他一些项目中 正在尝试遵循 对这个项目的项目到项目引用,这个项目已经 已卸载或未包含在解决方案中,以及引用 项目不使用相同或等效的配置构建 或平台。


^ 我确保它声称没有任何References

这是我尝试过的。

首先,我的.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>
  1. 根据a SO linkanother one,我应该在### 插入这些行之一:-

    <OutputPath>$(Configuration)\$(Platform)\</OutputPath>
    <OutputPath>$(SolutionDir)$(Configuration)\</OutputPath>
    <OutputPath>bin\$(Platform)\</OutputPath>  
    
  2. 同上,但添加到&lt;ItemGroup Label="ProjectConfigurations"&gt;

  3. 删除Label="Configuration"

  4. 根据another SO link,我也试过AnyCPUAny CPU(在更复杂的解决方案中测试,但新的空解决方案没有。)。

  5. A Microsoft link 声明 Output Path 代表 C#。在C++ 中,我必须使用Output Directory。它是OutDir

    <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
    <OutDir>$(Configuration)\$(Platform)\</OutDir>
    
  6. 执行上述操作,但在属性表中。

  7. 做上面的事情,还要unloaded-reload项目,甚至重启VS2017。

在我尝试了所有组合之后,警告仍然存在。

程序可以正确编译运行,
但我认为这是在更大的解决方案中不必要的重新编译的原因。

问题:如何解决警告/错误?

OutputPath 控制台中的字很可疑。
我怀疑 VS 将我的解决方案识别为C#。 (有可能吗?-我的测试项目有std::cout

由于某些原因,大多数关于此错误的 SO 问题都与 msbuildC#.net (another one) 相关,而不是 C++。 p>

回复

组合框中没有Win32这样的选项,所以我新建了一个。
Configuration Manager > Active solution platform : &lt;New...&gt;

我还确保设置正确:-

但是,我仍然收到相同的错误消息。

【问题讨论】:

  • .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.propsToolset.targets。我的测试.vcxproj 包含&lt;PlatformToolset&gt;v141&lt;/PlatformToolset&gt;(一致)。我不确定我能做些什么。
  • 奇怪,几年后,我不再有问题了。它可能与项目重新定位和从头开始重新创建每个配置有关。

标签: c++ visual-studio build


【解决方案1】:

你有可疑的平台设置-x86,改成Win32。

UPD.:所以问题似乎不在于项目,而在于 Visual Studio 安装 - 尝试修复/重新安装它。

【讨论】:

  • 我刚试过。我仍然遇到同样的错误(我将其添加到问题中)。不错的猜测。谢谢。
  • 看来项目属性刚刚搞砸了。您可以创建一个新项目并将源代码添加到其中吗?
  • 我之前试过。它可以编译(带有警告)并运行良好。根据您的建议,我刚刚在同一个测试解决方案上创建了第二个项目Window Console Application。它也可以正常编译(带有警告)并且运行良好。新的警告/错误是 OutputPath property is not set for project 'ConsoleApplication2.vcxproj' ... 和以前一样。
  • 我不认为项目属性 (.vcxproj) 被搞砸了,因为它是由 VS 的向导创建的。以防万一,我还将文件附加到问题中。
  • 是的,您的 Visual Studio 安装似乎有问题。像缺少环境变量或类似的东西......
【解决方案2】:

在我的例子中,我们从不同的系统中移动了项目,因此,一些目录指向了错误的(非默认)路径。
Solution Explorer 上,右键单击项目名称,选择Unload the project,然后再次右键单击并选择Edit the xxx.csproj,最后在您的不同PropertyGroup 上搜索、检查并修复您的&lt;OutputPath&gt;bin\Debug\&lt;/OutputPath&gt;&lt;OutputPath&gt;bin\Release\&lt;/OutputPath&gt; em> 条件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 2014-01-20
    • 2014-06-10
    • 2012-02-23
    • 1970-01-01
    • 2019-10-26
    • 2021-06-06
    相关资源
    最近更新 更多