it-swarm.com.ru

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

Я недавно установил 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\

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

52
superstatic

Кажется разумным, что решение, которое дал Гэвин Пью, решило бы проблему, хотя я не пробовал это. Я тоже столкнулся с этой проблемой после удаления 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 + смерзаться + Enter)

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

70
Jonathan DeCarlo

Вот вещь, которая сделала мне трюк:

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

6
Mladen Janković

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

Я только что выполнил исправление в 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

4
Gavin Pugh

Для тех, кто здесь с помощью поиска 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, delete it, и ваш VS2010 будет работать снова.

3
Syam S

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

ошибка 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.

1
Timmmm

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

0
Nick

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

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

0
mameen

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

0
Jthorpe

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

0
Ross Meldrum