49

我最近安裝了Visual Studio 11 Developer Preview來試用它,現在我的VS 2010項目不會打開。相反,我得到了以下錯誤消息:MSBuild不包含「VCTargetsPath」屬性的值

的MSBuild不包含在「VCTargetsPath值」屬性

我發現有人報告了這個問題here on Connect,並從微軟的迴應是:

發佈Microsoft在12/2/2011於下午5:25
嗨阿夫欣,

感謝您的反饋。您遇到的問題已針對下一個公開發布的Visual Studio修復。

吉姆Griesmer
的Visual C++團隊

神奇。那麼如何恢復VCTargetsPath,以便我的項目能夠再次運行?

「VCTargetsPath是在HKEY_LOCAL_MACHINE \ SOFTWARE定義\微軟的工具箱財產\的MSBuild \ ToolsVersions \ 4.0」。

我瀏覽到在註冊表中VCTargetPath值,並將它的數值:

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

不知道該從哪裏出發。有什麼建議麼?

+1

這些預覽版本小於alpha質量。除非您使用虛擬機,否則切勿在生產機器上安裝RTM以外的任何其他設備修復VS2010,然後重新安裝。 – 2011-12-14 00:11:28

+1

客戶預覽也會發生這種情況,而不僅僅是您提到的那些「預先預先設置」。 – gparent 2012-03-08 00:29:09

回答

5

下面是做把戲對我的事:

命名DefaultToolsVersion位於HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.02.04.0更改註冊表值。在Wow6432Node也做同樣的事情。

4

「Mladen Jankovic」建議的註冊表編輯方法不適用於我。

我剛剛在Visual Studio 2010上運行了修復(運行VS2010安裝光盤上的setup.exe,或通過控制面板 - >程序調用'卸載')。它爲我做了詭計。

您還應該再次運行SP1安裝。

對於它的價值,我的'加載項'(包括Incredibuild)在此之後表現良好。他們不需要重新安裝或修理。我的設置/窗口/調試器佈局也被保留。 http://www.gamefromscratch.com/post/2011/12/15/Do-not-remove-Visual-Studio-2011-developer-preview!.aspx

65

這似乎是合理的解決方案加文·普格了會解決這個問題,雖然我沒有嘗試:

顯然,這個問題,如果你卸載VS11的開發者預覽版只提出了自己。卸載VS11的開發人員預覽版後,我也遇到了這個問題。我想我知道什麼是錯誤的。

Mladen揚科維奇是在正確的軌道上。其中遵循兩個(必要時)的註冊表項是缺少我的機器上:

  • 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\

(您可以通過鍵入enter image description here + R +註冊表編輯器+輸入編輯在Windows註冊表項)對我而言,上面列出的第二個價值就是缺少的價值。添加完成後,我能夠再次與我的項目合作。

+2

也爲我工作。第二個鍵(Wow6432Node)在x64系統上的VS11 CTP不穩定後丟失。 – 2012-02-25 08:46:04

0

如果使用VS 2010 SP1,請轉至控制面板|卸載程序,卸載/更改VS 2010 SP1並選擇重新應用SP1。它爲我工作。

0

我一直有這個同樣的問題,並發現該工具集標籤並沒有在該項目節點

設置設置工具版本解決了這個問題對我來說

0

我用c :\ Windows \ SysWOW64 \ regedit.exe並進入HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ 3.5,並在3.5版本的文件夾中列出了defaulttoolsversion 2.0,所以我將其修改爲3.5,現在一切正常。

1

對於那些誰在這裏通過谷歌搜索:

如果你以前安裝VS 2015年或VS VS2010後的任何更新版本,然後卸載,這是你的解決方案。

在下面的錯誤消息:

無法評估屬性表達式 「$([MSBuild的] :: ValueOrDefault( '$(VCTargetsPath)',「$(MSBuildExtensionsPath32)\ Microsoft.Cpp \ V4 。「)」

14.0是VS2015的版本號。不幸的是,VS2015/2012卸載程序忘記了其註冊表項中的一個,當您返回到VS2010時會導致該錯誤。

轉到開始/運行/註冊表編輯器>

查找 HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的MSBuild \ ToolsVersions \ 14.0(12.0爲好)

而且

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 14.0(12.0)

如果這裏有一個鍵14.0/12.0,刪除它和你的VS2010將有望再次工作。

1

唉,我終於找到了這個答案,這亦沒有給我同樣的錯誤信息 - 我得到:

錯誤MSB4019:導入項目「C:\ Microsoft.Cpp.Default。道具「沒有找到。確認聲明中的路徑是正確的,並且該文件存在於磁盤上。

出於某種原因,它在32位構建中運行良好,但不是64位構建。

無論如何,解決方法是將所有VCTargetPath*密鑰從HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild ToolsVersions\14.0複製到HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0。他們錯過了我。

其實我只複製了VCTargetsPathVCTargestPath14,因爲複製很繁瑣。似乎對於VC++ 2015來說已經足夠了。