Visual Studio 2013, ошибка MSB8020: невозможно найти инструменты сборки для Visual Studio 2010 - PullRequest
0 голосов
/ 21 сентября 2018

В начале я хотел бы отметить, что я потратил некоторое время на изучение этой проблемы и предложил решения для похожих вопросов, таких как , этот мне не помог.


Неполадка проблемы

Мне нужно перенести проект плагина Firebreath (над которым я ранее не работал) с ПК_1 на ПК_2.

Насколько я знаю, проект был запущенна ПК_1 в Visual Studio 2010 и более поздних версиях перемещен в Visual Studio 2013 Pro.Есть одно решение, состоящее из 19 проектов.У меня есть инструкция, которая гласит, что для того, чтобы получить установщик плагина, я должен сначала Build project_x, а затем Build project_y_WiXInstall.Оба этапа работают без каких-либо проблем на этом компьютере.

Тогда есть PC_2, на котором было установлено сообщество Visual Studio 2015, прежде чем я начал работать на нем.Я удалил его, установил Visual Studio 2013 Pro (версия 12.0.21005.1 REL - точно так же, как на PC_1), переместил все необходимые файлы, и я пытаюсь избавиться от всех ошибок компиляции.До сих пор я понял, что мне нужно установить Cmake 2.8, Windows Driver Toolkit 7.1 и вручную переопределить неверную переменную VCTargetsPath MSBuild

Описание проблемы

В настоящее время, когда я пытаюсь скомпилироватьВ проекте на новой машине я получаю эти две ошибки (это ссылка на изображение, так как я пока не могу встраивать изображения в этот аккаунт).Я не уверен, что происходит с первым сообщением об ошибке, так как оно выглядит неполным, а файл CUSTOMBUILD не существует, но меня это не сильно беспокоит, так как предыдущая ошибка компиляции, которую я исправил, также имела похожий «артефакт»как первая ошибка и исчезла после исправления второй.

Покрытая часть второго сообщения об ошибке - путь к проекту.Источник ошибки (файл Microsoft.Cpp.Platform.targets, строка 64) выглядит следующим образом:

<!-- Error out if toolset does not exists in Visual Studio 2010 or 2012 -->
<VCMessage Code="MSB8020" Type="Error" Arguments="$(_CurrentPlatformToolsetShortName);$(PlatformToolset)" Condition="'$(ToolsetTargetsFound)' != 'true'" />

Что не помогло

  1. В описании ошибки предлагается использовать Upgrade Solution..., но когда я щелкаю правой кнопкой мыши по решению,
  2. нет такой возможности. Как следует из принятого ответа на вопрос, который я разместил в начале своего поста, я проверил свойства всех 19из моих проектов (включая проект ZERO_CHECK), но их Набор инструментов платформы уже установлен на Visual Studio 2013 (v120).
  3. Я также попытался изменить Набор инструментов платформы на inherit from parent or project defaults для всех проектов.Это привело к переключению на Visual Studio 2010 (v100) (not installed), после чего я щелкнул правой кнопкой мыши по проектам и выбрал Upgrade VC++ compiler and libraries.После этого набор инструментов платформы вернулся к Visual Studio 2013 (v120), но это не помогло с ошибкой компиляции.
  4. Как показывает непринятый ответ на вопрос, который я разместил в начале моего поста,Я пытался найти все вхождения 10.0 и V100 во всех моих файлах .vcxproj, чтобы заменить их, но я не нашел их вхождения.

[ПРАВИТЬ]

Мне только что пришла идея попробовать построить проект с MSBuild из командной строки.В Visual Studio немного больше информации по сравнению с ошибками, поэтому, возможно, это поможет решить проблему: https://pastebin.com/JhN3dXM3

1 Ответ

0 голосов
/ 22 сентября 2018

То, что вам здесь не хватает, это то, что проекты FireBreath создаются с использованием CMake - фактическое содержимое каталога сборки всегда должно быть полностью временным и никогда не храниться в системе контроля версий.Чтобы собрать проект на новом компьютере, вам нужно снова запустить команду prep с нуля.

Если предыдущий сопровождающий изменил файлы сборки вручную и / или перенес его в более новую версию Visual Studio, не используя cmake длясделайте это, тогда они сделали очень уродливые вещи, и все ставки сняты.всегда делайте обновления файлов проекта в cmake.

Надеюсь, это поможет!

...