MSBuild не содержит значения свойства VCTargetsPath.
Недавно я установил Visual Studio 11 Developer Preview, чтобы попробовать, и теперь мои проекты VS 2010 не будут открываться. Вместо этого появляется следующее сообщение об ошибке:
MSBuild не содержит значения свойства "VCTargetsPath"
Я нашел человека, который сообщил об ошибке здесь, на Connect, и ответ от Microsoft:
Отправленный Microsoft в 12/2/2011 в 17:25
Привет Афшин,
Спасибо за отзывы. Проблема, с которой вы столкнулись, исправлена для следующего открытого релиза Visual Studio.
Джим Грисмер
Команда Visual С++
Фантастические. Итак, как мне восстановить VCTargetsPath, чтобы мои проекты снова работали?
"VCTargetsPath - это свойство набора инструментов, которое определено в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0.
Я просмотрел значение VCTargetPath в реестре и получил значение:
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
Не уверен, куда идти отсюда. Любые предложения?
Ответы
Ответ 1
Кажется разумным, что решение Gavin Pugh дало бы проблему, хотя я этого не делал. Я также столкнулся с этой проблемой после удаления 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, набрав
+ R + regedit + Enter)
Для меня второе значение, указанное выше, было тем, что отсутствовало. После того, как я добавил его, я снова смог работать с моим проектом.
Ответ 2
Вот что я сделал для меня:
Измените значение реестра с именем DefaultToolsVersion
, расположенным в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0
от 2.0
до 4.0
. Сделайте то же самое и в Wow6432Node
.
Ответ 3
Метод редактирования реестра, предложенный "Младеном Янковичем", не работал у меня.
Я только что проверил ремонт в 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
Для тех, кто находится здесь: google search:
Если вы ранее устанавливали 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, надеюсь, снова будет работать.
Ответ 5
Ugh Я наконец нашел ответ для этого, который, кстати, не дал мне то же сообщение об ошибке - я получаю:
ошибка 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
, потому что копирование довольно утомительно. Кажется, этого достаточно для VС++ 2015.
Ответ 6
Если вы работаете с VS 2010 SP1, перейдите в Панель управления | Удалите программу, удалите/измените VS 2010 SP1 и выберите повторный набор SP1. Это сработало для меня.
Ответ 7
У меня была такая же проблема, и выяснилось, что тег набора инструментов не был установлен в проекте node
Настройка версии инструментов разрешила для меня
Ответ 8
Я использовал C:\Windows\SysWOW64\regedit.exe и перешел на HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5, а в папке для версии 3.5 у него было 2.0, указанное в defaulttoolsversion, поэтому я изменил это на 3.5, и все работает Теперь.