【问题标题】:Error building Visual Studio solution using MsBuild使用 MsBuild 构建 Visual Studio 解决方案时出错
【发布时间】:2015-11-15 09:10:17
【问题描述】:

我有一个 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):任务失败,因为找不到“AxImp.exe”,或者不正确 未安装 Microsoft Windows SDK。任务正在寻找 “AxImp.exe”在“bin”子目录下指定位置 在注册表项的 InstallationFolder 值中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86。你或许能解决 通过执行以下操作之一解决问题: 1) 安装 Microsoft 视窗 SDK。 2) 安装 Visual Studio 2010。 3) 手动设置 上面的注册表项到正确的位置。 4)通过正确的 定位到任务的“ToolPath”参数中。

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

【问题讨论】:

  • 因为您使用了错误版本的 MSBuild.exe。请改用 c:\program files (x86)\msbuild\12.0\bin\msbuild.exe。或者,最好使用 Visual Studio 命令提示符快捷方式,以便正确设置所有路径。
  • MsBuild 命令是 TFS 构建中构建步骤的一部分,无法更改。我的计算机上没有 VS2012,但是当使用路径 C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe 时,构建工作没有错误。不幸的是,这对我没有帮助。

标签: visual-studio-2012 visual-studio-2013 sdk com msbuild


【解决方案1】:

我解决了安装Windows 8.1 SDK的问题

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

所以,起初,我猜他们的意思是 Windows 10 SDK,这也是 Windows 2012 服务器的正确版本。很遗憾,Windows 10 SDK 不包含缺少的 AxImp.exe SDK 文件。 因此,您可以想象,我花了很长时间才弄明白 Windows 8.1 SDK 是解开这个谜题的关键。

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

【讨论】:

  • don't post identical answers to multiple questions。发布一个好的答案,然后投票/标记以关闭其他问题作为重复问题。如果问题不是重复的,调整您对该问题的回答
  • Julio Nobre 的回答对我有帮助,因为我也认为安装最新的 SDK 会解决问题,但似乎他说需要安装 8.1(也许还将 miising 文件复制到"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools") 可以解决问题。谢谢大家!
【解决方案2】:

【讨论】:

  • 谢谢!我安装了“适用于 Windows 8 的 Windows 软件开发工具包 (SDK)”,其中包含“.NET Framework 4.5 SDK”,并且似乎是与 8.0A 版关联的 SDK。现在构建工作。仍然不明白为什么需要它。
  • @Helan,我知道帮助你有点晚了,但是今天在这个问题上挣扎了几个小时,即使在阅读了上述建议之后,我还是决定发布一个答案,指点原因在于,除了 Windows 10 SDK 之外,Window 8.1 SDK 也是一些项目的要求。干杯!
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2017-11-18
    • 2020-12-07
    相关资源
    最近更新 更多