【问题标题】:Visual Studio 2013 and TFS Build 2015: Devenv.exe unable to produce MSI fileVisual Studio 2013 和 TFS Build 2015:Devenv.exe 无法生成 MSI 文件
【发布时间】:2015-12-31 00:47:30
【问题描述】:

我们正在将 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 开始构建时,似乎完全无视安装项目(我检查了构建配置,并在“发布 |任何 CPU”配置)。

我查看了构建日志、构建过程活动日志,还尝试在构建代理上手动执行这些步骤,但我找不到任何可以为我指明方向的东西可能是导致问题的原因。

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    但是,使用 devenv.exe 构建安装项目仍然不起作用。我还没弄明白为什么。

    【讨论】:

    • 你应该使用devenv.com,这是Visual Studio的命令行版本。
    【解决方案2】:

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

    工具:

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

    参数:

    HelloWorldTestInstaller\HelloWorldTestInstaller.vdproj /build release
    

    这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-20
      • 2015-12-29
      • 2016-08-14
      • 2016-03-02
      • 1970-01-01
      • 2017-11-21
      相关资源
      最近更新 更多