使用 MsBuild 构建 Visual Studio 解决方案时出错

Error building Visual Studio solution using MsBuild

我有一个 Visual Studio 2013 解决方案 (MySolution2013.sln),其中包含许多使用 .NET 4.5.1 的 C# 项目。

在 VS2015 中构建 MySolution2013.sln 时一切正常。

当我从命令提示符运行执行以下命令时:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe MySolution2013.sln

对于包含对 COM 组件的引用的 C# 项目,我收到以下错误:

C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (2015): Task failed because "AxImp.exe" was not found, or the correct Microsoft Windows SDK is not installed. The task is looking for "AxImp.exe" in the "bin" subdirectory beneath the location specified in the InstallationFolder value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86. You may be able to solve the problem by doing one of the following: 1) Install the Microsoft Windows SDK. 2) Install Visual Studio 2010. 3) Manually set the above registry key to the correct location. 4) Pass the correct location into the "ToolPath" parameter of the task.

有人知道这是什么吗?注册表部分的 Windows SDK v8.0A 是 visual Studio 2012 的一部分。为什么我的 VS2013 解决方案需要 VS2012 的部分?

您有两个选择:

  1. 安装微软Windows SDK
  2. 将这些文件复制到您要构建的机器上。

看看这些答案:

Task could not find "AxImp.exe"

"Task failed because AXImp.exe was not found" when using MSBuild 12 to build a MVC 4.0 project

Task failed because "AxImp.exe" was not found, or the correct Microsoft Windows SDK is not installed

我解决了安装问题Windows 8.1 SDK

就我而言,我试图在 CI [=19= 上使用 MSBuild 编译 .csproj ]Windows 2012 R2 服务器(CI 代表持续集成),尽管与此主题最相关的网络问题建议安装 Windows SDK,他们没能准确指出是哪一个。

所以,起初,我猜他们的意思是 Windows 10 SDK,这也是 Windows 2012 的正确版本 服务器。不幸的是,Windows 10 SDK 不包含缺少的 AxImp.exe SDK 文件。 所以,正如您所想象的,我花了很长时间才弄清楚 Windows 8.1 SDK 是这个谜语的关键。

再次希望对其他人有所帮助;-)

提交到 SVN 后,当我尝试在 Windows 2012 服务器上使用 Jenkins 构建 VS2015 解决方案文件时,我遇到了同样的问题。试图复制 AxImp.exe 和相关的二进制文件和设置但失败了。所以我必须安装 windows 8.1 SDK 并通过 Jenkins CI 服务器成功构建。 希望这对某人有所帮助。