簡體   English   中英

Delphi 10 Seattle試用版無法編譯任何內容,並顯示MSBuild錯誤

[英]Delphi 10 Seattle trial fails to compile anything, gives an MSBuild error

我下載並安裝了Delphi 10試用版。 但是,每次我嘗試構建任何東西時,都會得到此信息: 未為“ HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ MSBuild \\ ToolsVersions \\ 12.0”中定義的ToolsVersion“ 12.0”指定MSBuildToolsPath,或者將指定的值評估為空串

我的電腦上的“ ToolsVersions”中沒有 12.0鍵。 但是我確實有2.0、3.5、4.0和14.0。 如果該知識有用的話,我還將安裝完整且可以正常工作的Visual Studio 2015社區。 我正在運行64位Windows 10 Pro。 我該怎么做才能解決此問題? 這是我第一次遇到任何版本的Delphi / RAD Studio問題……實際上直到現在,我才意識到Rad Studio IDE關心,使用或與MSBuild無關。

這是一個已知問題,在此處記錄: https : //community.embarcadero.com/article/technical-articles/16202-msbuildtoolspath-is-not-specified-for-the-toolsversion

此錯誤是由注冊表中的錯誤值引起的。 在32操作系統上,運行regedit並導航到HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Microsoft \\ MSBuild。 在64位操作系統上,運行regedit並導航到HKEY_LOCAL_MACHINE \\ SOFTWARE \\ Wow6432Node \\ Microsoft \\ MSBuild。 首先,通過選擇文件|備份此注冊表項。 出口。 接下來,查看ToolsVersions鍵下面的數字。 刪除在MSBuild級別上找不到的任何數字。 ...有傳聞證據表明此注冊表項不平衡是由卸載某些版本的Visual Studio引起的,但目前尚未得到確認。

由於我一直在安裝/卸載各種Visual Studio版本(包括預覽版),所以猜測確實是由該原因引起的

錯誤“已指定默認工具版本“ 2.0”,但找不到其定義。” 如果您按照第一篇文章的建議刪除了2.0鍵,則可能會出現。 一種解決方案是在x32和x64提到的注冊表位置中的MSBuild項下編輯每個值,並將DefaultToolsVersion更改為14.0或已安裝的其他最高MSBuild工具版本

請注意,在x64機器上,您需要同時針對x32和x64注冊表位置修復這兩個問題,因為IDE是32位進程,並且如果您僅修復x64位置,它將在內部失敗,因此請在源代碼中強調所有“使用時的標准單位”子句代碼並顯示“無法解析單元名稱xx”

安裝此文件也可能會很有用: https : //www.microsoft.com/zh-cn/download/confirmation.aspx?id=48159

這可能也很有用(從https://msdn.microsoft.com/zh-cn/library/bb383985.aspx復制):

優先順序

用於確定ToolsVersion的優先順序(從最高到最低)是:用於生成項目的MSBuild任務上的ToolsVersion屬性。

msbuild.exe命令中使用的/ toolsversion(或/ tv)開關(如果有)。

如果設置了環境變量MSBUILDTREATALLTOOLSVERSIONSASCURRENT,則使用當前的ToolsVersion。

如果設置了環境變量MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT,並且項目文件中定義的ToolsVersion大於當前ToolsVersion,請使用當前ToolsVersion。

如果設置了環境變量MSBUILDLEGACYDEFAULTTOOLSVERSION,或者如果未設置ToolsVersion,則使用以下步驟:

項目文件的Project元素的ToolsVersion屬性。 如果該屬性不存在,則假定它是當前版本。

MSBuild.exe.config文件中的默認工具版本。

注冊表中的默認工具版本。 有關更多信息,請參見標准和自定義工具集配置。

如果未設置環境變量MSBUILDLEGACYDEFAULTTOOLSVERSION,則使用以下步驟:

如果環境變量MSBUILDDEFAULTTOOLSVERSION設置為存在的ToolsVersion,請使用它。

如果在MSBuild.exe.config中設置了DefaultOverrideToolsVersion,請使用它。

如果在注冊表中設置了DefaultOverrideToolsVersion,請使用它。

否則,請使用當前的ToolsVersion。

我在delphi中解決了需要Msbuild 14的問題,我只是下載並安裝與我的錯誤消息匹配的msbuild,在我的情況下: https : //www.microsoft.com/zh-cn/download/details.aspx? id = 48159

我認為您可以從Microsoft網站下載msbuild,以查看其是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM