Итак, у меня есть проект в 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)".
Я нашел эту тему и ссылку на нее: ссылка на сайт
но это не говорит мне, как это исправить. Из того, что я могу сказать, свойства для отдельного проекта не оцениваются в порядке их оценки.
Как я могу определить порядок свойств листа? Что именно мне нужно изменить?
Кроме того, я не могу изменить файлы проекта или что-либо, связанное с wxWidgets, так как это подмодуль в моем репозитории, и любые сделанные изменения не могут быть сохранены в репозитории.
Отказ от ответственности: я не имею понятия о вашей проблеме, просто пытаюсь помочь вам (ОП)!
В IDE, под меню Посмотреть ,Выбрать другие окна.
Там выберите Менеджер по недвижимости ,которые позволяют вам манипулировать списками свойств в ваших проектах.
Щелкните правой кнопкой мыши на листе свойств. У некоторых листов есть меню, которое позволяет вам перемещать лист вверх или вниз.
Я предлагаю поиграть с этим. Это может просто решить вашу проблему.
Конечно, я могу ошибаться.
У меня была та же проблема, но с другой библиотекой.
Причиной для меня было то, что в проекте, который я конвертировал, конфигурация, с которой я компилировался, отсутствовала в файле 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», и это исправило ее.
Определенно, предупреждающее сообщение не очень полезно в этом случае.