7
votes

I have an existing XAML build I am porting over to Visual Studio Team Services build. There is a Solution file that contains two wixproj projects, and this builds with no issues on the current (legacy XAML) Hosted Build Controller (which uses WiX Toolset v3.7).

In VS TS, I created a new build process and added a step to Build solution using a Visual Studio Build step. I have set the Solution path to my sln that contains the two wixproj projects. All the other options are the defaults except the timeout which is set to 10 minutes.

The build step initiates but times out after calling the Light.exe step, as in the log below:

PrepareForBuild:
  Creating directory "obj\Debug\".
  Creating directory "bin\Debug\".
Compile:
  C:\Program Files (x86)\WiX Toolset v3.10\bin\candle.exe -dDebug ...
  Windows Installer XML Toolset Compiler version 3.10.3.3007
  Copyright (c) .NET Foundation and contributors. All rights reserved.

  {myfile}.wxs
Link:
  C:\Program Files (x86)\WiX Toolset v3.10\bin\Light.exe -out ...
  Windows Installer XML Toolset Linker version 3.10.3.3007
  Copyright (c) .NET Foundation and contributors. All rights reserved.

##[error]The task has timed out.

The build will run 10 minutes and then throw a timeout error. It usually takes ~1 minute to finish. There is no information in the log about where this may be timing out or why.

I see that VS TS Build uses WiX version 3.10, but WiX version 3.10 works for me locally to build this same sln. I haveve tried all options for Visual Studio Version in the build step with same results.

Any ideas what I am missing and why this isn't working?

1

1 Answers

23
votes

I found a post in the wixtoolset GitHub project documenting a bug in WiX 3.10 about deadlocks occurring with WiX projects if there are any warning or error messages generated during the build.

The workaround is to add the following MSBuild Arguments in the build step:

/p:RunWixToolsOutOfProc=true

This resolved my issue with the Light.exe process timing out.