MSBuild не содержит значение для свойства "VCTargetsPath" - PullRequest
54 голосов
/ 14 декабря 2011

Я недавно установил Visual Studio 11 Developer Preview, чтобы попробовать его, и теперь мои проекты VS 2010 не открываются. Вместо этого я получаю следующее сообщение об ошибке:

MSBuild не содержит значения для свойства "VCTargetsPath"

Я нашел кого-то, кто сообщил о проблеме здесь, в Connect , и ответ от Microsoft был:

Опубликовано Microsoft 12.12.2011 в 17:25
Привет Афшин,

Спасибо за отзыв. Проблема, с которой вы столкнулись, исправлена ​​в следующем общедоступном выпуске Visual Studio.

Джим Грисмер
Visual C ++ Team

Фантастическая. Итак, как мне восстановить VCTargetsPath, чтобы мои проекты снова работали?

"VCTargetsPath - это свойство набора инструментов, определенное в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 4.0."

Я нашел значение VCTargetPath в реестре, и оно имеет значение:

$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\

Не уверен, куда идти отсюда. Есть предложения?

Ответы [ 9 ]

72 голосов
/ 16 февраля 2012

Кажется разумным, что решение, которое дал Гэвин Пью, решило бы проблему, хотя я не пробовал. Я тоже столкнулся с этой проблемой после удаления Developer Preview VS11. Я думаю, что я знаю, что на самом деле не так.

Младен Янкович был на правильном пути. На моем компьютере отсутствовал один из следующих двух (необходимых) разделов реестра:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
    • Имя ключа: VCTargetsPath
    • Тип: REG_SZ
    • Значение: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\4.0
    • Имя ключа: VCTargetsPath
    • Тип: REG_SZ
    • Значение: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\

(Вы можете редактировать ключи реестра в Windows, набрав enter image description here + R + regedit + Enter)

Для меня вторым значением, которое я перечислил выше, было то, которое отсутствовало. После того, как я его добавил, я снова смог работать с моим проектом.

6 голосов
/ 02 января 2012

Вот что меня устроило:

Измените значение реестра с именем DefaultToolsVersion, расположенное в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0, с 2.0 на 4.0.Сделайте то же самое в Wow6432Node тоже.

4 голосов
/ 21 июля 2016

Для тех, кто здесь с помощью поиска Google:

Если вы ранее установили VS 2015 или более поздние версии vs после vs2010, а затем удалили, вот решение для вас.

В сообщении об ошибке ниже:

Невозможно оценить выражение свойства "$ ([MSBuild] :: ValueOrDefault ( '$ (VCTargetsPath)', '$ (MSBuildExtensionsPath32) \ Microsoft.Cpp \ v4.0 \ V140 \'))"

14.0 - номер версии VS2015. К сожалению, деинсталлятор VS2015 / 2012 забывает один из своих ключей реестра, который затем вызывает эту ошибку, когда вы возвращаетесь к VS2010.

Перейти к запуску / запуску / regedit>

Ищите HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 14.0 (также 12.0)

И

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 14.0 (в том числе 12.0)

Если здесь есть ключ 14.0 / 12.0, удалите его и ваш VS2010, надеюсь, будет работать снова.

4 голосов
/ 05 января 2012

Метод редактирования реестра, предложенный Младеном Янковичем, у меня не сработал.

Я только что выполнил восстановление в Visual Studio 2010 (запустите файл setup.exe на установочном диске VS2010 или вызовите «удаление» через Панель управления-> Программы). Это помогло мне.

Вы также должны снова запустить установку SP1.

Что бы это ни стоило, мои «надстройки» (включая Incredibuild) вели себя хорошо после этого. Их не нужно было переустанавливать или ремонтировать. Мои настройки / окна / расположение отладчика также были сохранены.

По-видимому, эта проблема возникает, только если вы удалите предварительный просмотр VS11 для разработчиков: http://www.gamefromscratch.com/post/2011/12/15/Do-not-remove-Visual-Studio-2011-developer-preview!.aspx

1 голос
/ 28 июня 2017

Тьфу, я наконец нашел ответ для этого, который случайно не дал мне то же самое сообщение об ошибке - я получаю:

ошибка MSB4019: импортированный проект "C: \ Microsoft.Cpp.Default.props" не найден. Убедитесь, что путь в объявлении правильный, и что файл существует на диске.

По какой-то причине он работал нормально с 32-разрядными сборками, но не с 64-разрядными сборками.

В любом случае, решение состоит в том, чтобы скопировать все ключи VCTargetPath* из HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild ToolsVersions\14.0 в HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0. Они пропали без вести.

На самом деле я скопировал только VCTargetsPath и VCTargestPath14, потому что копирование довольно утомительно. Кажется, достаточно для VC ++ 2015.

0 голосов
/ 22 августа 2018

Я прибыл сюда, когда пытался собрать проект на языке c ++ без установленных инструментов для сборки на языке c ++ Visual Studio. Мое решение состояло в том, чтобы загрузить установщик Visual Studio Build Tools со страницы загрузки на вкладке «Инструменты для Visual Studio 2017», запустив установщик с помощью «инструментов сборки Visual C ++» и «.NET Desktop Build Tools» варианты.

0 голосов
/ 26 ноября 2015

Я использовал C: \ Windows \ SysWOW64 \ regedit.exe и перешел в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ 3.5, а в папке для версии 3.5 он был указан в списке 2.0 как defaulttoolsversion, поэтому я изменил его на 3.5 и все работает Теперь.

0 голосов
/ 06 марта 2013

У меня возникла такая же проблема, и я обнаружил, что тег набора инструментов не был установлен в узле проекта

Установка версии инструментов решила это для меня

0 голосов
/ 28 марта 2012

Если вы работаете с VS 2010 SP1, перейдите на Панель управления |Удалите программу , удалите / измените VS 2010 SP1 и выберите повторно применить SP1.У меня это сработало.

...