2

所以,我有一个VS2017的项目,最近VS2017收到了更新。然后,我将所有 wxWidgets 模块作为项目添加到我的初始解决方案中,并处理了构建顺序,因此它们以正确的顺序构建。

但是,我总是收到此错误:

C:\Programs\Visual Studio 2017\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Common.props(144,5): warning
MSB4211: The property "WindowsTargetPlatformVersion" is being set to a value for the first time, but it was already consumed at
"C:\Programs\Visual Studio 2017\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.props (29,5)".

我找到了这个线程和其中链接的文章:link

但它并没有告诉我如何解决它。据我所知,单个项目的属性没有按照应该评估的顺序进行评估。

如何定义属性表排序?我究竟需要改变什么?

也不是说我不能更改项目文件或连接到 wxWidgets 的任何内容,因为它是我的存储库中的一个子模块,并且所做的任何更改都无法保存到存储库中。

4

2 回答 2

5

免责声明:我对您的问题一无所知,只是想帮助您(OP)!

在 IDE 中,在菜单View下,选择其他窗口。在那里选择Property Manager,它可以让您在项目中操作属性表。右键单击属性表。有些工作表有一个菜单,可让您向上或向下移动工作表。

我建议玩弄它。它可能只是解决你的问题。当然,我可能完全错了。

于 2018-02-08T00:27:46.557 回答
1

我遇到了同样的问题,但使用了不同的库。

我的原因是在我转换的项目中,我正在编译的配置不存在于 props 文件中

C:\Users\\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user.props

例如,在我拥有的 vcxproj 文件中

<ProjectConfiguration Include="DLL Release|x64">
  <Configuration>DLL Release</Configuration>
  <Platform>x64</Platform>
</ProjectConfiguration>

但在道具文件中我只有:

  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <PreprocessorDefinitions>MYMACRO1;MYMACRO2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>

我刚刚为“DLL Release|x64”添加了一个类似的条目并修复了它。

在这种情况下,警告消息肯定不是很有帮助。

于 2018-03-14T00:33:09.767 回答