【发布时间】:2019-11-24 16:14:54
【问题描述】:
使用 MSBuild 14.0 的 TFS 构建代理失败并显示“错误 MSB3091:任务失败,因为未找到“AxImp.exe””,而 SDK 已安装且 AxImp.exe 存在。
错误表明它无法在“注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools-x86 的 InstallationFolder 值中指定的位置”下的 bin 中找到文件
该位置没有“Microsoft SDKs”节点,但它确实存在于 Wow6432Node 下:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.2\
此节点包含对 WinSDK-NetFx40Tools-x86 和 WinSDK-NetFx40Tools-x64 位置的引用。
MSBuild 是否在错误的注册表位置中查找? 我可以配置构建以使其定位 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 工具 要么 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\x64 找到 AxImp.exe 以及它对 SDK 的期望?
背景:
到目前为止,我们的开发基于 Windows 10、Visual Studio 2017,目标是 .Net Framework 4.6.2。我现在正在尝试在 Windows Server 2012 R2 Standard 上自动构建。
我已安装 Microsoft Build Tools 2015、Microsoft .Net Framework 4.6.2 SDK、.Net Framework 4.6.2 Targeting Pack 和 .Net Framework 4.6.2 Targeting Pack (ENU)。
在追查了许多缺失的依赖项之后,已经成功创建了构建代理并获得了几乎成功的构建。
【问题讨论】:
-
Waidaminit 错误是指“\NETFXSDK\4.6\WinSDK-NetFx40Tools-x86”,而不是 4.6.2。
-
我也安装了 Windows 4.6 SDK,但不知道如何让 msbuild 找到它。我找不到对 4.6 版本产生依赖的原因,我认为它是我们的软件引用的第三方 DLL。