PDA

View Full Version : How to build different version of the product



tb3619
07-30-2004, 04:35 PM
I want to be able to release my product in three different versions: 1) Full has everything. 2) Trial has limited features. and 3) Debug has debug symbols.

Each build has different components that will be included in the setup.exe.

FULL - app.exe, my1.dll, my2.dll, my3.dll, my4.dll

TRIAL - app.exe, my1.dll, my2.dll

Debug - app.exe, my1D.dll, my2D.dll, my3D.dll


My Visual Studio .Net solution contains module projects (ie *.exe,*.dll), and InstallShield X InstallScript project (ie *.ism). When I build my solution, module projects are build first, then the InstallScript project. For each module projects, I includes their "Primary Output" and "Debug Symbol" to the component list in InstallScript project, (e.g. module1.Primary_output and module1.Debug_Symbol). Since the InstallScript project is intergrated in VS .Net, I don't need to select a specific module files to be added to the component list, just their project names. The draw back is that I can't build the setup in InstallShield X environment, it has to be built in the VS.Net solution because of the module project names reference.

When I build a debug version of the product, everything are included in the setup.exe. When I build a release version, I got an error indicating that there are no Debug symbols, so the build failed.

Is there anyway that I can tell InstallShield X not to include the specific components (e.g. Debug Symbol) during the build?

I just want ONE *.ism project file. I don't want to maintance three project files.

Thanks,

austin
07-31-2004, 01:51 AM
I am not overly sure of the VS environment combo you are using to build IS
I think you would be calling a batch file to build IS setup.
In this case you could define a variable in the .bat file as follows


C:\Program Files\InstallShield\Professional 7\Program\bin\Compile.exe -dTRIAL
or
C:\Program Files\InstallShield\Professional 7\Program\bin\Compile.exe -dFULL

Then you can use
#ifdef TRIAL
//include only those components that are needed in Trial
ComponentSelectItem(MEDIA, szComponentName, TRUE);
#endif
in your installshield script onBegin() handler.

Hope this solves your problem