Generating and Deploying MSI Installers

Go to:

Deploy, Generate Deployment Installer (MSI)...

Generating a deployment project or an MSI installer for your application simplifies the process of moving your application from your development environment into your production environment. (Enterprise Edition feature. Requires Visual Studio .NET.)

Deployment projects create a single DLL with your application’s ASPX, ASCX, binary object files, images, and other components.  The generated deployment project folder can then be copied to your production server for deployment.

MSI installers are self-contained “executables” that are stand-alone installation programs.  They do not require you to copy any files or deploy any stored procedures; the MSI installer, when run, performs all file installation.  The MSI installer generated by Iron Speed Designer bundles everything into an MSI file that can be installed anywhere.  The MSI installer contains all necessary application files except your database.

Option

Description

Deployment Folder

The file folder location where the deployment project will be created.

Generate MSI installer

If selected, an MSI installer will be generated for your application.

Assembly Information

Provide this information to better identify your application.

Running an MSI installer

Simply copy the .msi file to a folder on your production server and run the MSI installer to deploy your application.  No other files need be copied.

Note: You may need to grant the MSI installer administrative permission to run on some 64 bit systems and on Windows Vista.

The deployment project has an unknown publisher

When you run the MSI deployment installer created by Iron Speed Designer on the Microsoft Vista or Microsoft Windows 7 operating systems, you may receive a User Account Control message.  This message is displayed if the installer is not “Code Signed” to indicate the publisher of the installer.  Since you are the developer of the application, you will need to Code Sign the installer if you would like to publish this externally to your customers.  If the MSI deployment installer is being used internally, there is typically no need for the installer to be code signed.

The User Account Control message displayed asks the user, “Do you want to allow the following program from an unknown publisher to make changes to this computer?”  Simply select “Yes” and continue with the installation.

C:\Documents and Settings\bwhite\My Documents\Ironspeed\UnknownPublisher.jpg

This is a normal part of the security procedures of the operating system and should not be a concern if the installer is generated internally for use within the organization.

If you want to distribute the installer outside your organization, you may want to consider the additional step of signing the installer. This is discussed more fully in the Microsoft MSDN article, Introduction to Code Signing:

http://msdn.microsoft.com/en-us/library/ms537361(VS.85).aspx

Virtual directory creation and Microsoft IIS handling

If the application does not yet exist on the target machine (website does not exist), the MSI installer creates a new virtual directory using Windows Authentication.  If the application (website) already exists, the MSI installer does not change any existing virtual directory settings.

If you are installing your application to a website rather than a virtual directory, you must create the website prior to installation.

There are no metabase changes made if your application is installed in an existing location (website).  However, application files will be overwritten in the site’s folder.  The IIS Metabase is not modified.

Database configuration

If you have a Microsoft Access database in your application folder, it is copied as part of your application.  The database is not created anew if it does not exist in your production environment.  If you are using Microsoft SQL Server, Oracle or MySQL, then you should modify your application’s Web.config file after installation to reference your production database.  See Changing Database Connection Settings for details.

If your application uses stored procedures, the MSI installer will automatically install them, overwriting any existing stored procedures for that application.  Stored procedures are deployed with the user authentication provided in your application’s Web.config file, and no additional permissions are added, changed or deleted in your database.

Process restarting

The MSI installer does not stop or restart any processes either during your application’s initial installation or reinstallation.

Caveats

Iron Speed Designer uses the .NET Framework compilers or Microsoft Visual Studio .NET to compile applications and to generate deployment folders and MSI installers.  Accordingly, there may be some aspects of your generated application that are not compatible with these compilers that make it impossible for to compile or produce various aspects of your application.

Specifically, using non-English characters in web page names can cause problems.  The following table lists known issues.

Compiler

Output Option

Code
Language

Non-English Characters Allowed in
Web Page Names

Non-English Culture

English Culture

.NET 2.0 Pre-compiler

Compiled application

C#

Yes

Yes

.NET 2.0 Pre-compiler

Compiled application

Visual Basic

Yes

Yes

Visual Studio .NET

MSI installer

C#

No

No

Visual Studio .NET

MSI installer

Visual Basic

Yes

No

Visual Studio .NET

Deployment folder

C#

No

No

Visual Studio .NET

Deployment folder

Visual Basic

Yes

No

MSI deployment installer project is missing the MSI file or Setup.exe

In some cases, the 'Generate Deployment Installer' process completes but the setup project generated does not contain an <App Name>.msi or Setup.exe file.  Furthermore, when the deployment solution is opened with Visual Studio .NET the output folder shows:

(unable to determine name)

The procedure to fix this is explained in MSDN Library article, "Deployment in Visual Studio, Cannot find outputs of project output group":

http://msdn2.microsoft.com/en-us/library/xsyw70ef(vs.80).aspx

See Also

Changing Database Connection Settings

Adding Your Application to the Windows Registry

Starting Your Session State Service

Generating and Deploying MSI Installers