I have a software application that comes in 6 'flavors'. The only real difference in the 6 msi files we need to produce is the exe file that is included.
I really want to be able to automate the process of building the 6 different msi files that I need to distribute as we do frequent updates to the product (one click builds them all), but I am limited in using the SDK, Visual Studio Installer and scripting to pull this off. I have a process that builds the 6 exe's and places them in different source folders. I have built merge files for the other components of the application and I have successfully created a project to create the 'final' msi by including the merge modules, the exe and a shortcut to be placed on the start menu (of course, I have to go into orca and edit the shortcut record to get it to work correctly but that's a whole different topic, hopefully I can script that process also).
Any suggestions on how to approach and automate this task?
Thanks in advance for any input.
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Advice on aproach for multiple products
Started by
Ron Weldy
, Dec 03 2002 23:42
1 reply to this topic
Posted 13 January 2003 - 22:49
Ron,
If I understand properly, you are trying to get something automated to build Merge modules and Installs?
Here is a snippet of what I have been doing. I have a batch (.bat) file that will clean existing merge modules up, build the current merge modules, build the installs and copy the files to a specified directory. I try to have a directory that I use to "smoke test" my builds, and once I pass them, I name them accordingly to the proper release. Here is what I do:
@echo Clean up the existing merge modules on the machine.
c:
cd "\Documents and Settings\clearadm\My Documents\MySetups\MergeModules"
DEL /q *.*
x:
cd \DEV\setup\Installer\MergeModules
@echo *****************************************************************
@echo *********************BUILD THE Merge Modules*********************
@echo Build MergeModule1.msm
ISCmdBld.exe -p x:\DEV\setup\Installer\MergeModules\MergeModule1.ism -d MergeModule1 -r MergeModule1 -s -a "WeeklyBuild" -b "x:\dev\setup\installer\mergemodules\bin"
@echo Build MergeModule2.msm
ISCmdBld.exe -p x:\DEV\setup\Installer\MergeModules\MergeModule2.ism -d MergeModule2 -r MergeModule2 -s -a "WeeklyBuild" -b "x:\dev\setup\installer\mergemodules\bin"
@echo *****************************************************************
@echo *********************BUILD THE INSTALLS**************************
@echo Build -p project location -d product name -r release name -s "silent build" -a build label -b build location
cd \DEV\setup\Installer\
@echo Build Project1.ism
ISCmdBld.exe -p "X:\DEV\setup\Installer\Project1.ism" -d "Project 1" -r "WeeklyBuild" -a "Project1" -b "X:\DEV\setup\Installer\Project1\Project 1"
@echo Build Project2.ism
ISCmdBld.exe -p "X:\DEV\setup\Installer\Project2.ism" -d "Project 2" -r "WeeklyBuild" -a "Project2" -b "X:\DEV\setup\Installer\Project2\Project 2"
@echo Build Project3.ism
ISCmdBld.exe -p "X:\DEV\setup\Installer\Project3.ism" -d "Project 3" -r "WeeklyBuild" -a "Project3" -b "X:\DEV\setup\Installer\Project3\Project 3"
@echo *****************************************************************
@echo ************Create directories on Target machine*****************
cd G:
rem Project 1
mkdir "G:\BUILDTEST\Project1\"
rem Project 2
mkdir "G:\BUILDTEST\Project2\"
rem **********************************************************************************
rem ************************Copying built executable items****************************
xcopy X:\DEV\setup\Installer\Project1\WeeklyBuild\DiskImages\Disk1\* "G:\BUILDTEST\project1\project 1\bin\"
xcopy X:\DEV\setup\Installer\Project2\WeeklyBuild\DiskImages\Disk1\* "G:\BUILDTEST\project2\project 2\bin\"
If I understand properly, you are trying to get something automated to build Merge modules and Installs?
Here is a snippet of what I have been doing. I have a batch (.bat) file that will clean existing merge modules up, build the current merge modules, build the installs and copy the files to a specified directory. I try to have a directory that I use to "smoke test" my builds, and once I pass them, I name them accordingly to the proper release. Here is what I do:
@echo Clean up the existing merge modules on the machine.
c:
cd "\Documents and Settings\clearadm\My Documents\MySetups\MergeModules"
DEL /q *.*
x:
cd \DEV\setup\Installer\MergeModules
@echo *****************************************************************
@echo *********************BUILD THE Merge Modules*********************
@echo Build MergeModule1.msm
ISCmdBld.exe -p x:\DEV\setup\Installer\MergeModules\MergeModule1.ism -d MergeModule1 -r MergeModule1 -s -a "WeeklyBuild" -b "x:\dev\setup\installer\mergemodules\bin"
@echo Build MergeModule2.msm
ISCmdBld.exe -p x:\DEV\setup\Installer\MergeModules\MergeModule2.ism -d MergeModule2 -r MergeModule2 -s -a "WeeklyBuild" -b "x:\dev\setup\installer\mergemodules\bin"
@echo *****************************************************************
@echo *********************BUILD THE INSTALLS**************************
@echo Build -p project location -d product name -r release name -s "silent build" -a build label -b build location
cd \DEV\setup\Installer\
@echo Build Project1.ism
ISCmdBld.exe -p "X:\DEV\setup\Installer\Project1.ism" -d "Project 1" -r "WeeklyBuild" -a "Project1" -b "X:\DEV\setup\Installer\Project1\Project 1"
@echo Build Project2.ism
ISCmdBld.exe -p "X:\DEV\setup\Installer\Project2.ism" -d "Project 2" -r "WeeklyBuild" -a "Project2" -b "X:\DEV\setup\Installer\Project2\Project 2"
@echo Build Project3.ism
ISCmdBld.exe -p "X:\DEV\setup\Installer\Project3.ism" -d "Project 3" -r "WeeklyBuild" -a "Project3" -b "X:\DEV\setup\Installer\Project3\Project 3"
@echo *****************************************************************
@echo ************Create directories on Target machine*****************
cd G:
rem Project 1
mkdir "G:\BUILDTEST\Project1\"
rem Project 2
mkdir "G:\BUILDTEST\Project2\"
rem **********************************************************************************
rem ************************Copying built executable items****************************
xcopy X:\DEV\setup\Installer\Project1\WeeklyBuild\DiskImages\Disk1\* "G:\BUILDTEST\project1\project 1\bin\"
xcopy X:\DEV\setup\Installer\Project2\WeeklyBuild\DiskImages\Disk1\* "G:\BUILDTEST\project2\project 2\bin\"