Reputation: 5037
I have a program that is used to create other program and compile it from *.cs source file
using System.CodeDom.Compiler;
I would like to create an installer too for the compiled program but i am wondering if i can do that programmatically, so when i click the Build Now button in my main application, a new installer will appear on a chosen destination.
Is there someway to create an msi installer for the compiled program ( the program that i have built ) with a button click.
I don't want to use InstallShield everytime i want to create an installer for my compiled programs.
Any help would be highly appreciated
Upvotes: 6
Views: 2661
Reputation: 530
Don’t overlook commercial products like Advanced Installer or InstallShield. Both offer freeware editions that allow you to seamlessly integrate the installer with your Visual Studio solution, enabling you to build the installer as part of your existing project. You also have CI/CD support, but that might be under their commercial products, better check on their website.
This ensures that the installer always references the latest version of your artifacts, so there’s no need to worry about manually updating them.
I recommend checking out their Visual Studio extensions and installing them to streamline the integration with your solution.
Upvotes: -1
Reputation: 8258
I recommend you use WiX. It is a very powerful installer building tool. You can use it to create the install files using the command line tools, which can be used from your build program.
Upvotes: 9
Reputation: 120508
WiX is now integrated with Deployment Tools Foundation, a complete wrapper around the Windows Installer API. When you install WiX, you'll get DTF too.This should allow you to address any MSI related scenario programmatically. There's some documentation too, but you'll need a fairly rigorous understanding of MSI databases to get to grips with the API. I'd avoid this if possible and go with the WiX route.
As vdproj setup projects are being killed off in VS11, learning WiX is a considerably better investment in time than getting to grips with some of the other options VS tries to steer you towards.
Upvotes: 3