PDA

View Full Version : Trying to build *.issuite project as part of a Visual Studio 2012 solution (*.sln)



Shuttledude
06-20-2013, 11:07 AM
I have no problem performing a local build (on my computer) of a Visual Studio 2012 solution which has an *.issuite InstallShield 2013 project as one of the solution projects. The install builds just fine, I get the setup.exe and all package folders just as if I'd built with the IS2013 GUI.

But when I included the *.issuite into the VS2012 solution, a corresponding *.isproj file was not generated! Is that a bug, or design behavior? The reason I need the *.isproj file (which essentially "bridges" the *.sln and the *.issuite) is that I want to build the VS2012 solution (including the installshield project) on Team Foundation Server 2012.

I do this all the time with non-suite projects: insert the *.ism into the *.sln, a file with the *.isproj extension is created and I check that into TFS, kick off a build, everything works great (the install is created).

So, is it erroneous behavior that I have encountered, or is it "design behavior" (i.e., IS2013 *.issuite projects are not yet supported by Visual Studio 2012)? Anyone know? :confused:

Shuttledude
06-21-2013, 01:20 PM
Just cannot seem to get this to work, so here is the workaround I'm using, if anyone else needs to know how to do this:

1) Do NOT include the *.issuite project as part of the Visual Studio 2012 *.sln; keep them separate.

2) Modify the *.xaml TFS 2012 build template file you're using in the build definition -- add a custom InvokeProcess, which merely uses the IsCmdBld.exe utility. Use the -p command line parameter to point it to the *.issuite project you're building.

Marek22
06-23-2013, 08:32 AM
Hi,
I had the same issue and i solved it after consultation with Christopher Painter.
Ive created empty .csproj with the same name as suite and manually added following msbuild code. I also have .issuite file included in my .csproj so I can checkin and checkout this file. All changes in .issuite I do using the authoring tool because i found it just better. To modify the IsCmdBld.exe parameters i used http://kb.flexerasoftware.com/doc/Helpnet/installshield12helplib/UsingIScmdBld.htm


<SuiteProjectName>$(MSBuildProjectDirectory)\$(MSBuildProjectName).issuite</SuiteProjectName>
...
<Target Name="BeforeBuild">
<Exec ContinueOnError="True" Command="&quot;c:\Program Files (x86)\InstallShield\2012Spring\System\IsCmdBld.exe&quot; -p &quot;$(SuiteProjectName)&quot;">
<Output TaskParameter="ExitCode" PropertyName="ErrorCode" />
</Exec>
<Message Importance="high" Text="$(ErrorCode)" />
<Move Condition=" '$(OutDir)' != '' And '$(BuildUri)' != '' And '$(TeamFoundationServerUrl)' != ''" SourceFiles="$(MSBuildProjectDirectory)\$(MSBuildProjectName)\Release\DiskImages\Disk1\setup.exe" DestinationFolder="$(OutDir)" />
</Target>

Best regards,
Marek