cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Tomas_Elison
Level 2

InstallShield and Team Foundation Build

I am trying to get InstallShield to work with my automated builds using the build service in TFS.

I have started simple and all I want to achieve to get started is having a solution with one visual studio project and one InstallShield project and having the generated MSI dropped in the drop location.

What I have done is simply this:


  • Created a new solution in VS
  • Added a windows application
  • Addes an InstallShield (Basic MSI) project
  • Included the primary output from the windows application in the install files of the InstallShield project
  • Created a new build type for this VS solution


Two problems arise when running the build type (on the build server.)


  • A warning is issued when building the InstallShield project saying that "The OutputPath property is not set for this project. Please check to make sure that you have specified a valid Configuration/Platform combination." This will happen for each VS project that is added to the InstallShield project. I am not sure if this warning can be ignored. I think it is related to the fact that in the Configuration Manager you cannot select a Platform for a InstallShield project.
  • The output from the InstallShield project is not placed in the drop directory. The files can be found in the temporary build directory though. I guess this is just something I have to handle myself. But I am not sure what variables would be available for me to locate the path of the generated MSI in order to copy it to the build directory. And when/where I would add this operation.


I have read Christopher Painter's blog but the information there is a bit to brief to help me. And from what I understand he has split his VS builds and InstallShield builds into two different build types.
Labels (1)
0 Kudos
(3) Replies
Tomas_Elison
Level 2

Adding another question to my own thread.

How does the VS integration handle a situation when I build both a debug and a release version from the same build script? Team foundation build will create two directories for the project output and the temporary files (Debug and Release). But InstallShield will only create one msi (in the temporary directory).

Any thoughts about this? Does the VS integration simply not support a build script that builds both debug and release versions?
0 Kudos
Christopher_Pai
Level 16

I don't reccomend using project outputs. Just use a postbuild script in the .NET project to copy the files to a static tree and then use that location to pickup files into your components.

I also abstract my .NET build and my InstallShield build into two seperate solution builds. My .NET build runs and drops the build in archives and then I override the AfterDrop target to create a `LATEST` folder in the drop area. Then when my Installer solution build runs it overrides the BeforeCompile/AfterGet target ( something like that ) to copy the .NET LATEST down for consumption by the installer.

There are many ways to do this though.... just pick the best one for you.
0 Kudos
Christopher_Pai
Level 16

I'm sorry my discussion was too brief. I try to stay high level in my posts since they aren't really white papers. If it helps, I just posted an example using TFS on InstallSite. It's a `keep it simple` example and it doesn't illustrate how I do my .NET builds and IS builds in different solutions. But it does demonstrate how to link InstallShield .NET outputs without actually using project output references.

Also feel free to leave comments, I don't mind answering questions once I know what parts of interest that I left out.
0 Kudos