Visual Studio 2013 和 TFS Build 2015:Devenv.exe 无法生成 MSI 文件

Visual Studio 2013 and TFS Build 2015: Devenv.exe unable to produce MSI file

我们正在将我们的 TFS 2013 服务器升级到 TFS 2015。在这方面,我 运行 在尝试使用新版本在构建代理上执行应用程序构建时遇到了问题,使用我们的 XAML 模板构建脚本(在 TFS 2013 中创建)。

我们的大多数解决方案在构建时都使用上述模板。解决方案(遗憾的是,仍然)使用安装项目 (.vdproj) 为应用程序生成 MSI 包。为给定的应用程序构建安装项目并生成 MSI;我们在模板构建脚本中调用 devenv.exe(在我们的例子中,它指向 Visual Studio 2013):

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe /Build "Release|Any CPU" "d:\<path_to_solution>\solution.sln" /Out c:\temp\out.log

然而,在我们的新构建代理上没有生成 MSI,并且调用 devenv.exe 既不会产生任何输出,也不会产生任何错误消息。但是,如果我尝试调用 devenv.com,它会开始构建,但仍然没有生成 MSI。

当事情开始使用 devenv.com 构建时,它似乎完全无视安装项目(我检查了构建配置,并检查了安装项目用于构建 "Release|Any CPU" 配置)。

我查看了构建日志、构建过程 activity 日志,我也尝试在构建代理上手动执行这些步骤,但我没能找到任何可以指向我的东西关于可能导致问题的方向。

有谁知道这可能是什么原因?这可能是 TFS Build 2015 的问题吗?据我所知,旧设置和新设置之间的唯一区别如下:

  1. VS 2013 安装在 C: 而不是 D: 在新的构建代理上,即 devenv 的路径会有所不同,但只要构建脚本正在寻找正确的位置,并找到它...
  2. 我们使用与旧设置不同的放置位置

感谢我能得到的任何帮助和建议。

问题已解决,现在一切都已成功构建。我没有很好地了解我们用于 TFS Build 2013 的构建代理的设置与我们为 TFS Build 2015 设置的设置之间的差异。

首先,为了能够在 VS 2013 中构建安装项目,需要在构建代理上安装 Visual Studio 2013 Installer Projects extension

但是,此扩展存在一些错误,通常会导致构建安装项目产生以下错误消息:“验证时发生错误。HRESULT = '8000000A'” .可以通过修改注册表来修复此错误,如 this SO post.

中所述

但是,使用 devenv.exe 构建安装项目仍然无效。我还没有弄清楚为什么。

使用 TFS 2015 中的 Vnext 构建来构建 .vdproj。您只需要添加一个额外的构建步骤,即 "command line" 然后调用 devenv.com 进行构建。 这样,

工具:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com 

参数:

HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj /build release

这对你有帮助。