1

我下载并安装了 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 专业版。我能做些什么来纠正这个问题?这是我第一次遇到任何版本的 Delphi/RAD Studio 问题...实际上直到现在才知道 Rad Studio IDE 关心、使用或与 MSBuild 有任何关系。

4

2 回答 2

2

这是一个已知问题,记录在这里: 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。首先,通过选择 File | 备份此注册表项 出口。接下来,查看 ToolsVersions 键下方的数字。删除在 MSBuild 级别找不到的任何数字。... 有轶事证据表明此注册表项不平衡是由卸载某些版本的 Visual Studio 引起的,但目前尚未得到证实。

由于我一直在安装/卸载各种 Visual Studio 版本(包括预览版),猜测确​​实是由它引起的

错误“指定了默认工具版本“2.0”,但找不到其定义。” 如果您按照第一篇文章的建议删除了 2.0 密钥,则可能会出现。解决方案是在 x32 和 x64 提到的注册表位置中编辑 MSBuild 键下的每个值,并将 DefaultToolsVersion 更改为 14.0 或已安装的其他最高 MSBuild 工具版本

请注意,在 x64 机器上,您需要为 x32 和 x64 注册表位置修复这两个问题,因为 IDE 是 32 位进程,如果您仅修复 x64 位置,它将在内部失败,在源代码中的 uses 子句中强调所有标准单位代码并显示“无法解析单元名称 xx”</p>

安装它也可能有用: https ://www.microsoft.com/en-us/download/confirmation.aspx?id=48159

了解这也可能很有用(从https://msdn.microsoft.com/en-us/library/bb383985.aspx复制):

优先顺序

用于确定 ToolsVersion 的优先级顺序(从最高到最低)是: 用于构建项目的 MSBuild 任务的 ToolsVersion 属性(如果有)。

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

如果设置了环境变量 MSBUILDTREATALLTOOLSVERSIONSASCURRENT,则使用当前的 ToolsVersion。

如果设置了环境变量 MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT 并且项目文件中定义的 ToolsVersion 大于当前的 ToolsVersion,则使用当前的 ToolsVersion。

如果设置了环境变量 MSBUILLDLEGACYDEFAULTTOOLSVERSION,或者未设置 ToolsVersion,则使用以下步骤:

项目文件的 Project 元素的 ToolsVersion 属性。如果此属性不存在,则假定为当前版本。

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

注册表中的默认工具版本。有关详细信息,请参阅标准和自定义工具集配置。

如果未设置环境变量 MSBUILLEGACYDEFAULTTOOLSVERSION,则使用以下步骤:

如果环境变量 MSBUILDDEFAULTTOOLSVERSION 设置为存在的 ToolsVersion,请使用它。

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

如果在注册表中设置了 DefaultOverrideToolsVersion,请使用它。

否则,使用当前的 ToolsVersion。

于 2017-03-05T22:20:18.847 回答
1

我在需要 Msbuild 14 的 delphi 中解决了我的问题,我只需下载并安装与我的错误消息匹配的 msbuild,在我的情况下: https ://www.microsoft.com/en-us/download/details.aspx?id =48159

我认为您可以从 microsoft 网站下载 msbuild 以查看它是否有效。

于 2015-11-06T11:43:43.947 回答