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

时间:2015-10-02 18:20:44

标签: visual-studio-2013 tfs devenv tfs2015 vdproj

我们正在将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 开始构建时,似乎完全无视安装项目(我已经检查了构建配置,并且检查了安装项目的构建在#34上;发布|任何CPU&#34;配置)。

我查看了构建日志,构建了流程活动日志,并且我还尝试在构建代理上手动执行这些步骤,但我还没有找到任何可以指向我的方向可能导致问题的原因。

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

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

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

2 个答案:

答案 0 :(得分:0)

问题解决了,现在一切都成功了。我没有做足够好的工作来查看我们用于TFS Build 2013的构建代理与我们为TFS Build 2015设置的构建代理之间的差异。

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

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

中所述

但是,使用devenv.exe构建安装项目仍然无法正常工作。我还没弄清楚原因。

答案 1 :(得分:0)

使用tfs 2015中的Vnext构建来构建.vdproj。您只需要添加一个额外的构建步骤,即“命令行”,然后调用devenv.com来构建。 这样, 工具:C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.com 参数:HelloWorldTestInstaller \ HelloWorldTestInstaller.vdproj / build release 这对你有帮助。