简体   繁体   English

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

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

We are in the process of upgrading our TFS 2013 server to TFS 2015. In that regard I have run into an issue when trying to perform an application build on a build agent with the new version, using our XAML template build script (which was created in TFS 2013). 我们正在将TFS 2013服务器升级到TFS 2015.在这方面,当尝试使用我们的XAML模板构建脚本(已创建)在新版本的构建代理上执行应用程序构建时,我遇到了一个问题。在TFS 2013中)。

Most of our solutions use the above-mentioned template when we build them. 我们的大多数解决方案在构建时都使用上述模板。 The solutions (sadly, still) use setup projects (.vdproj) to generate an MSI package for the application. 解决方案(遗憾的是,仍然)使用安装项目(.vdproj)为应用程序生成MSI包。 To build the setup project, and produce an MSI, for a given application; 为给定的应用程序构建安装项目并生成MSI; we call the devenv.exe (in our case, it points to Visual Studio 2013) in our template build script: 我们在模板构建脚本中调用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

However, on our new build agent no MSI is produced, and calling devenv.exe yields neither any output, nor any error messages. 但是,在我们的新构建代理上没有生成MSI,并且调用devenv.exe既不会产生任何输出,也不会产生任何错误消息。 If I try to call devenv.com , however, it starts building, but still no MSI is being produced. 但是,如果我尝试调用devenv.com ,它会开始构建,但仍然没有生成MSI。

When things start to build using devenv.com It seems like it is completely disregarding the setup project (I have checked the build configurations, and the setup project is checked for build on the "Release|Any CPU" configuration). 当事情开始使用devenv.com构建时似乎完全无视安装项目(我已经检查了构建配置,并且在“Release | Any CPU”配置中检查了安装项目的构建)。

I have looked at build logs, build process activity logs, and I have also tried to perform the steps manually on the build agent, but I haven't been able to find anything that could point me in the direction as to what might be causing the issue. 我已经查看了构建日志,构建了进程活动日志,并且我还尝试在构建代理上手动执行这些步骤,但是我无法找到任何可能指向我可能导致的问题的方法问题。

Does anyone have an idea what could be the reason for this? 有谁知道这可能是什么原因? Could it be an issue with TFS Build 2015? 这可能是TFS Build 2015的一个问题吗? The only difference between the old setup, and the new - as far as I can tell - is the following: 旧设置和新设置之间的唯一区别 - 据我所知 - 如下:

  1. VS 2013 was installed on C: rather than D: on the new build agent, ie the path to devenv would be different, but that should not matter as long as the build script is looking in the right place, and finds it... VS 2013安装在新的构建代理上的C:而不是D:上,即devenv的路径会有所不同,但只要构建脚本在正确的位置查找并找到它就不重要......
  2. We use a different drop location than what we used for the old setup 我们使用与旧设置不同的放置位置

Appreciate any help and suggestions I can get. 感谢我能得到的任何帮助和建议。

Problem solved, and everything is now building successfully. 问题解决了,现在一切都成功了。 I did not do a good enough job of looking at the diff between the setup we had on the build agent we used for TFS Build 2013 vs. the one we set up for TFS Build 2015. 我没有做足够好的工作来查看我们用于TFS Build 2013的构建代理与我们为TFS Build 2015设置的构建代理之间的差异。

Firstly, to be able to build setup projects in VS 2013, one needs to install the Visual Studio 2013 Installer Projects extension on the build agent. 首先,为了能够在VS 2013中构建安装项目,需要在构建代理上安装Visual Studio 2013安装程序项目扩展

However, there are some bugs with this extension that often causes building setup projects to yield the following error message: " An error occurred while validating. HRESULT = '8000000A' ". 但是,此扩展程序存在一些错误,这些错误通常会导致构建设置项目产生以下错误消息:“ 验证时发生错误。\\ n \\ n HRESULT ='8000000A' ”。 This error can be fixed by modifying the registry, as described in this SO post . 可以通过修改注册表来修复此错误, 如此SO帖子中所述

Building the setup projects using devenv.exe, however, still doesn't work. 但是,使用devenv.exe构建安装项目仍然无法正常工作。 I have not been able to figure out why, yet. 我还没弄清楚原因。

Use the Vnext build in tfs 2015 to build .vdproj. 使用tfs 2015中的Vnext构建来构建.vdproj。 You just need to add one additional build step ie "command line" then call devenv.com to build. 你只需要添加一个额外的构建步骤,即“命令行”,然后调用devenv.com来构建。 Such that, Tool : C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\devenv.com Arguments : HelloWorldTestInstaller\\HelloWorldTestInstaller.vdproj /build release This will help you. 这样,工具:C:\\ Program Files(x86)\\ Microsoft Visual Studio 14.0 \\ Common7 \\ IDE \\ devenv.com参数:HelloWorldTestInstaller \\ HelloWorldTestInstaller.vdproj / build release这将对您有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM