Visual Studio хочет построить с неверным набором инструментов платформы

Я обновил решение с VS2010 до VS2012.
Я сделал это с другими решениями, и это работало нормально.

Но теперь, когда я попытался построить обновленное решение, компилятор сказал мне:

Error 1596  error MSB8020: The builds tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the v100 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install Visual Studio 2010 to build using the Visual Studio 2010 build tools.    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets   42  5   praat3

Я не знаю, почему компилятор пытается использовать VS2010.

На страницах свойств проекта в разделе «Отладка исходных файлов» отображаются следующие записи:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\
etc.

Кроме того, если я установлю «Platformtoolset» на «Наследовать от проекта выше или стандарт проекта», по умолчанию будет «v100». Я думаю, что это лучший намек на то, что здесь идет не так.

Случайно мне удалось открыть файл Microsoft.Cpp.Platform.targets, и я вижу, что там перечислены v90 и v100, но не v110.

Может ли кто-нибудь, кто использует только VS2012, взглянуть на этот файл?

Вот как это выглядит для меня:

<!--
***********************************************************************************************
Microsoft.Cpp.Platform.targets

WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
created a backup copy.  Incorrect changes to this file will make it
impossible to load or build your projects from the command-line or the IDE.

This file defines the steps/targets required to build Visual C++ projects
specifically on x86 platforms.

Copyright (C) Microsoft Corporation. All rights reserved.
***********************************************************************************************
-->

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ToolsetTargetsFound Condition="Exists('$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\$(PlatformToolset)\Microsoft.Cpp.$(Platform).$(PlatformToolset).targets')">true</ToolsetTargetsFound>
<VCTargetsPathEffective Condition="'$(ToolsetTargetsFound)' == 'true'">$(VCTargetsPath)</VCTargetsPathEffective>
</PropertyGroup>

<!-- Import Before -->
<Import Condition="Exists('$(VCTargetsPath)\Platforms\$(Platform)\ImportBefore')" Project="$(VCTargetsPath)\Platforms\$(Platform)\ImportBefore\*.targets"/>
<!-- Import platform toolset file if found in this version -->
<Import Condition="'$(ToolsetTargetsFound)' == 'true'" Project="$(VCTargetsPath)\Platforms\$(Platform)\PlatformToolsets\$(PlatformToolset)\Microsoft.Cpp.$(Platform).$(PlatformToolset).targets" />
<!-- Try to find the toolset in older versions  -->
<Import Condition="'$(ToolsetTargetsFound)' != 'true' and '$(MinSupportedVCTargetsVersion)' != 'v110'" Project="Microsoft.Cpp.Platform.Redirect.targets" />

<PropertyGroup>
<PrepareForBuildDependsOn>PlatformPrepareForBuild;$(PrepareForBuildDependsOn)</PrepareForBuildDependsOn>
</PropertyGroup>

<Target Name="PlatformPrepareForBuild" DependsOnTargets="$(PlatformPrepareForBuildDependsOn)">
<PropertyGroup>
<ConfigurationPlatformExists Condition="'%(ProjectConfiguration.Identity)' == '$(Configuration)|$(Platform)'">true</ConfigurationPlatformExists>
</PropertyGroup>

<!-- Error out when building an platform that is not set in the project file -->
<VCMessage Code="MSB8013" Type="Error" Arguments="$(Configuration)|$(Platform)" Condition="'$(DesignTimeBuild)'!='true' and '$(ConfigurationPlatformExists)' != 'true'"/>

<!-- Check if toolset exists in Visual Studio 2010 or Dev11 -->
<VCMessage Code="MSB8020" Type="Error" Arguments="$(_PlatformToolsetShortNameFor_v100);$(PlatformToolset)" Condition="'$(DesignTimeBuild)'!='true' and '$(ToolsetTargetsFound)' != 'true' and '$(PlatformToolset)' == 'v100'" />
<VCMessage Code="MSB8020" Type="Error" Arguments="$(_PlatformToolsetShortNameFor_v90);$(PlatformToolset)" Condition="'$(DesignTimeBuild)'!='true' and '$(ToolsetTargetsFound)' != 'true' and '$(PlatformToolset)' == 'v90'" />
<VCMessage Code="MSB8020" Type="Error" Arguments="$(PlatformToolset);$(PlatformToolset)" Condition="'$(DesignTimeBuild)'!='true' and '$(ToolsetTargetsFound)' != 'true' and '$(PlatformToolset)' != 'v90' and '$(PlatformToolset)' != 'v100'" />
</Target>

<!-- Import After -->
<Import Condition="'$(ToolsetTargetsFound)' == 'true' and Exists('$(VCTargetsPath)\Platforms\$(Platform)\ImportAfter')" Project="$(VCTargetsPath)\Platforms\$(Platform)\ImportAfter\*.targets"/>
</Project>

Спасибо вам за помощь.

8

Решение

Проект собирается строить с помощью компиляторов VS2010 (набор инструментов платформы). Возможно, вы удалили VS2010 и получили эту ошибку.

Вы можете изменить набор инструментов платформы в свойствах проекта-> Общие-> Набор инструментов платформы.
Измените это Visual Studio 2012.

11

Другие решения

В разделе «C / C ++» в разделе «Дополнительные каталоги включения» была указана библиотека. Я не использовал эту библиотеку, но на нее ссылались. Я удалил эту библиотеку.

Я также удалил все записи «studio 2010» в реестре.

2

Я знаю, что это старая ветка, но, возможно, это может помочь кому-то еще, кто придет сюда из-за подобных проблем.

У меня была похожая проблема. Сообщество VS 2015 (MSBuild 14), создающее приложение на c ++, хотело использовать инструменты VS 2010 (v100). Все закончилось, давая msbuild неверную конфигурационную опцию. Странный.

Итак, перепроверьте все эти параметры и параметры.

1

Та же самая ошибка для меня недавно с VS2017.

Оказалось, что решение было просто пропустить зависимый проект.
Если это причина, вы должны увидеть что-то вроде:

Done building project "someproject.vcxproj" -- FAILED.

на следующей строке после сообщения об ошибке:

error MSB8020: The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found.

Эта ошибка может сбить с толку, поскольку ваши проекты уже могут быть перенаправлены.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector