I have a web application implemented in ASP.NET MVC3 and SQL Server 2008 Express. It’s relatively small so I can deploy it in local computer of my clients (Windows 7 or higher).
Currently, I deploy it manually by create new web site in IIS, copy published files to the folder of website, install SQL Server 2008R2 and use Management Studio to restore database with some initial data.
It’s OK with me but not with my clients. They can’t do the same things. What I want is an automatic installer, my clients just need to click a few buttons to get all done.
Specifically, this automatic installer must do the following things:
- Install SQL Server 2008R2 Express and restore the initial database.
- Install IIS7 (if it’s not enabled in Windows 7).
- Create a new app pool (V4) and a new Web Site use this pool. Then copy published files to the folder of the Web Site.
- The installler can run
aspnet_regiiscommand and grant permission forNETWORK SERVICEaccount toTEMPfolder. This is required for web site to run. - The installer can copy some fonts to Font folder of Windows.
I see many app can do this automatic installer, but after googling I can’t find a thorough solution to try.
Please give me some advice on this. Thanks in advance!
If you want a free solution, WiX is what you need, but it will take you some time to learn using it if you never created a package with it.
A more easy to use, and also powerful, but payed tool, is Advanced Installer, you need Professional edition, but you can try it for free with the 30 days trial mode. It has predefined prerequisite for SQL Server Express, built-in support to install IIS entities, and set file/folder permissions. Bassically all the requirements you need.
To enable any IIS feature you can simply add a PowerShell script.