cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
bashenfelter
Level 3

TFS 2010 Build - Can't Find Project Outputs

I am trying to build a VS 2010 solution on a TFS 2010 build server. One of the projects is a InstallShield 2010 LE project. The InstallShield project references the primary outputs of the other projects in the solution.

Building the solution locally works fine - MSI is created that includes the outputs (DLLs, EXEs) of the other projects. When I try to build on the TFS 2010 build server, I get the following error:

C:\Program Files (x86)\MSBuild\InstallShield\2010Limited\InstallShield.targets (89): No outputs for project "X" were provided, but the installation project references "X.Primary output".


I assume this has to do with where TFS puts the outputs of any project (*.csproj) it builds. TFS will place all compiled outputs (DLLs, EXEs) into a separate "Binaries" folder not in a "Bin\Debug" folder like Visual Studio does.

Is there anything in the InstallShield.targets file I need to change. I notice that the .targets file does include some TFS specific tasks in it so I assume that it's already TFS-aware. I'm not sure why it's not finding the project outputs.

thanks.
0 Kudos
(2) Replies
bashenfelter
Level 3

After some further work, this doesn't appear to be a TFS issue but a general MSBuild issue with InstallShield 2010 LE. That is, I ran MSBuild from the command prompt on my local machine against the solution file and got the same errors. So, in summary, the solution and MSI builds fine within the VS 2010 IDE but fails when I build it via the command prompt using MSBuild.
0 Kudos
bashenfelter
Level 3

My problem was resolved when I moved my Visual Studio solution up one folder so all of its included projects (.csproj and .isproj) were below it in the folder tree. There seems to be a problem resolving the project outputs if the project file is not below the solution file in the folder hierarchy.

For example, my original structure was:


Folder: Installer

installX.sln

installX.isproj

Folder: ProjectX

ProjectX.csproj


I changed it to:


installX.sln
Folder: Installer

installX.isproj

Folder: ProjectX

ProjectX.csproj


With this change, my project now builds via MSBuild locally as well as on the build server.
0 Kudos