简体   繁体   中英

How to create an MSI installer programmatically?

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

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.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM