63
Designer for Visual Studio WiX Setup Projects Designer for Visual Studio WiX Setup Projects

Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

  • Upload
    phamanh

  • View
    258

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

Designer for Visual Studio WiX Setup Projects

Designer

for Visual Studio WiX Setup Projects

Page 2: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

2 Add-in Express™

www.add-in-express.com

Designer for Visual Studio WiX Setup Projects Designer for Visual Studio WiX Setup Projects

Designer for Visual Studio WiX Setup Projects

Revised on 5-Apr-16

Copyright © Add-in Express Ltd. All rights reserved.

Add-in Express, ADX Extensions, ADX Toolbar Controls, Afalina, AfalinaSoft and Afalina Software are trademarks or registered trademarks of Add-in Express

Ltd. in the United States and/or other countries.

THIS SOFTWARE IS PROVIDED "AS IS" AND ADD-IN EXPRESS LTD. MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY

WAY OF EXAMPLE, BUT NOT LIMITATION, ADD-IN EXPRESS LTD. MAKES NO REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR

FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE, DATABASE OR DOCUMENTATION WILL NOT

INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS

Page 3: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

3 Add-in Express™

www.add-in-express.com

Designer for Visual Studio WiX Setup Projects Table of Contents

Table of Contents

Designer for Visual Studio WiX Setup Projects .................................. 2

Introduction ......................................................................................... 5

Why WiX Designer? ........................................................................................................................................ 6

System Requirements .................................................................................................................................... 6

Technical Support ........................................................................................................................................... 6

Installing and Activating................................................................................................................................. 6 Activation Basics ......................................................................................................................................................... 6 Setup Package Contents............................................................................................................................................. 7 Solving Installation Problems ...................................................................................................................................... 8

Add-in Express Products ............................................................................................................................... 8

Getting Started .................................................................................... 9

Your First Standard Setup Project .............................................................................................................. 10 Step #1 – Adding a WiX Setup Project ...................................................................................................................... 10 Step #2 – Setup Project File ...................................................................................................................................... 11 Step #3 – Specifying the Target Folder ..................................................................................................................... 12 Step #4 – Application Project Outputs ....................................................................................................................... 13 Step #5 – Creating a Folder Hierarchy and Deploying Files...................................................................................... 14 Step #6 – Creating Registry Entries .......................................................................................................................... 15 Step #7 – Creating the Installer UI ............................................................................................................................ 16 Step #8 – Specifying Custom Actions ....................................................................................................................... 18

Your First Web Setup Project ...................................................................................................................... 20 Step #1 – Adding a WiX Setup Project ...................................................................................................................... 20 Step #2 – Setup Project file ....................................................................................................................................... 21 Step #3 – Specifying the Target Folder ..................................................................................................................... 22 Step #4 – Web Application Project Outputs .............................................................................................................. 24 Step #5 – Creating a Folder Hierarchy and Deploying Files...................................................................................... 24 Step #6 – Creating Registry Entries .......................................................................................................................... 25 Step #7 – Creating the Installer UI ............................................................................................................................ 26 Step #8 – Specifying Custom Actions ....................................................................................................................... 28

How To ............................................................................................. 30

How to add merge module reference to merge module project............................................................... 30

How to add merge module to setup project ............................................................................................... 33

How to make the setup project localizable? .............................................................................................. 35 Localizing the setup project: quick start..................................................................................................................... 35 Behind the scenes ..................................................................................................................................................... 37 Supported and non-supported languages ................................................................................................................. 38 Editing language-specific files ................................................................................................................................... 38 Testing multiple-language installer ............................................................................................................................ 39 Language-specific prerequisites ................................................................................................................................ 40

Page 4: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

4 Add-in Express™

www.add-in-express.com

Designer for Visual Studio WiX Setup Projects Table of Contents

How to prevent running Install and Uninstall custom actions during upgrade ..................................... 41

Tips and Notes .................................................................................. 42

Web Setup ...................................................................................................................................................... 42 Configuring IIS .......................................................................................................................................................... 42

Prerequisites ................................................................................................................................................. 42

Custom Prerequisites ................................................................................................................................... 45 Bootstrapper folders .................................................................................................................................................. 45 My Prerequisites Dialog ............................................................................................................................................ 45 Bootstrapper package ............................................................................................................................................... 46 Install File .................................................................................................................................................................. 48 System checks .......................................................................................................................................................... 51 Related packages ..................................................................................................................................................... 56 Custom schedules ..................................................................................................................................................... 57 Install Conditions ....................................................................................................................................................... 58 Exit Codes ................................................................................................................................................................. 59 Security ..................................................................................................................................................................... 60 Additional Files .......................................................................................................................................................... 61

Merge Modules .............................................................................................................................................. 62

Finally ............................................................................................... 63

Page 5: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

5 Add-in Express™

www.add-in-express.com

Add-in Express for Office and .net Introduction Designer for Visual Studio WiX Setup Projects

Introduction

WiX Designer is a development tool designed to simplify and speed up the creation of

WiX setup projects in Visual Studio. It provides the UI familiar for developers who created

setup projects using Visual Studio Installer.

Page 6: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

6 Add-in Express™

www.add-in-express.com

Designer for Visual Studio WiX Setup Projects Installing and Activating

Why WiX Designer?

Microsoft introduced Visual Studio Installer many years ago. In Visual Studio 2012, they discontinued it in favor

of WiX – Windows Installer XML, a free software toolset that builds Windows Installer packages from XML code.

WiX is a flexible tool that provides an XML interface to features provided by Windows Installer (previously known

as Microsoft Installer). Still the Windows Installer concepts create difficulties for developers. Even with the XML

interface of WiX. This becomes evident in the typical case of "creating a simple installer". Although the concrete

meaning of the term "simple" varies, most developers agree that "seeing the picture" is often more productive

than "reading the text file".

"Seeing the picture" is what Visual Studio Installer provided for developers. With slightly more than a couple of

dialogs, Visual Studio Installer allowed the developers create the "simple" installer they craved for. Now with

Visual Studio Installer withdrawn, WiX Designer fills the gap.

System Requirements

WiX Designer supports creating WiX projects in Visual Studio 2010, 2012, 2013 and 2015.

WiX 3.6 or above must be installed.

Express editions of Visual Studio are not supported.

Technical Support

WiX Designer is developed and supported by the Add-in Express Team, a branch of Add-in Express Ltd. The

Add-in Express web site at www.add-in-express.com provides a wealth of information and software downloads.

In particular, see our technical blog it provides the recent information for WiX Designer developers.

For technical support use our forums or email us at [email protected]. Urgent problems can be

reported by email or using the Escalate To buttons on the forums.

Installing and Activating

There are two main points in the WiX Designer installation. First off, you have to specify the development

environments in which you are going to use WiX Designer (see System Requirements). Second, you need to

activate the product.

Activation Basics

During the activation process, the activation wizard prompts you to enter your license key. The key is a 30-

character alphanumeric code shown in six groups of five characters each (for example, AXN4M-GBFTK-3UN78-

Page 7: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

7 Add-in Express™

www.add-in-express.com

Designer for Visual Studio WiX Setup Projects Installing and Activating

MKF8G-T8GTY-NQS8R). Keep the license key in a safe location and do not share it with others. This license key

forms the basis for your ability to use the software.

For purposes of product activation only, a non-unique hardware identifier is created from general information that

is included in the system components. At no time are files on the hard drive scanned, nor is personally identifiable

information of any kind used to create the hardware identifier. Product activation is completely anonymous. To

ensure your privacy, the hardware identifier is created by what is known as a "one-way hash". To produce a one-

way hash, information is processed through an algorithm to create a new alphanumeric string. It is impossible to

calculate the original information from the resulting string.

Your license key and a hardware identifier are the only pieces of information required to activate the

product. No other information is collected from your PC or sent to the activation server.

If you choose the Automatic Activation option of the activation wizard, the wizard attempts to establish an

online connection to the activation server, www.activatenow.com . If the connection is established, the wizard

sends both the license key and the hardware identifier over the Internet. The activation service generates an

activation code using this information and sends it back to the activation wizard. The wizard saves the activation

code to the registry.

If an online connection cannot be established (or you choose the Manual Activation option), you can activate

the software using your web browser. In this case, you will be prompted to enter the license key and a hardware

identifier on a web page, and you will get an activation code. This process finishes with saving the activation code

to the registry.

Activation is completely anonymous; no personally identifiable information is required. The activation code can

be used to activate the product on that computer an unlimited number of times. However, if you need to install

the product on several computers, you will need to perform the activation process again on every PC. Please

refer to your end-user license agreement for information about the number of computers you can install the

software on.

Setup Package Contents

The WiX Designer setup program installs the following folders on your PC:

Bin – WiX Designer binary files

Docs – WiX Designer documentation including class reference

WiX Designer setup program installs the following text files on your PC:

licence.txt – EULA

readme.txt – short description of the product, support addresses and such

whatsnew.txt – this file contains the latest information on the product features added and bugs fixed.

Page 8: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

8 Add-in Express™

www.add-in-express.com

Designer for Visual Studio WiX Setup Projects Add-in Express Products

Solving Installation Problems

Make sure you are an administrator on the PC.

On Vista, Windows 7 - 8 and Windows 2008 Server, set UAC to its default level.

In Control Panel | System | Advanced | Performance | Settings | Data Execution

Prevention, set the "... for essential Windows programs and services only" flag.

Remove the following registry key, if it exists:

HKEY_CURRENT_USER\Software\Add-in Express\{product identifier} {version}

{package}

Run setup.exe, not .MSI. If this is applicable, run setup.exe by right clicking it and choosing “Run as administrator”

in the context menu.

Finally, use the Automatic Activation option in the installer windows.

Add-in Express Products

Add-in Express provides a number of products for developers on its web site.

Add-in Express for Microsoft Office and .NET

It allows creating version-neutral managed COM add-ins, smart tags, Excel Automation add-ins, XLL add-ins and

RTD servers in Visual Studio. See http://www.add-in-express.com/add-in-net/ .

Add-in Express for Microsoft Office and CodeGear VCL

It allows creating fast version-neutral native-code COM add-ins, smart tags, Excel automation add-ins, and RTD

servers in Delphi. See http://www.add-in-express.com/add-in-delphi/ .

Add-in Express for Internet Explorer and .NET

It allows developing add-ons for IE in Visual Studio. Custom toolbars, sidebars and BHOs are on board. See

http://www.add-in-express.com/programming-internet-explorer/ .

Security Manager for Microsoft Outlook

This is a product designed for Outlook solution developers. It allows controlling the Outlook e-mail security guard

by turning it off and on in order to suppress unwanted Outlook security warnings. See http://www.add-in-

express.com/outlook-security/ .

Page 9: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

9 Add-in Express™

www.add-in-express.com

Designer for Visual Studio WiX Setup Projects Getting Started

Getting Started

Here we guide you through developing of a WiX setup project using WiX Designer:

Your First Standard Setup Project

Your First Web Setup Project

Page 10: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

10 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Your First Standard Setup Project

Here we demonstrate creating a standard setup project on an example of an existing Windows Forms application.

Make sure WiX Toolset is installed on your machine and registered with your Visual Studio. If WiX is not

listed in the About dialog of Visual Studio, install the WiX version supporting the Visual Studio version

that you use.

Step #1 – Adding a WiX Setup Project

In Visual Studio, open your solution, and add a WiX project to it: go to the Visual Studio main menu and click

File -> Add -> New Project to open the Add New Project dialog.

Page 11: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

11 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Choose the Setup Project item in the Windows Installer XML node, specify the project name and click

OK. Visual Studio will add the setup project to the solution and open the Product.wxs file.

Step #2 – Setup Project File

Product.wxs is the source file of your setup project. A newly created project contains the XML code shown

below.

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0"

Manufacturer="" UpgradeCode="aa918e08-bbdd-49fc-a9f2-fef05b153069">

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is

already installed." />

<MediaTemplate />

<Feature Id="ProductFeature" Title="SetupProject1" Level="1">

<ComponentGroupRef Id="ProductComponents" />

</Feature>

</Product>

<Fragment>

<Directory Id="TARGETDIR" Name="SourceDir">

<Directory Id="ProgramFilesFolder">

<Directory Id="INSTALLFOLDER" Name="SetupProject1" />

</Directory>

</Directory>

</Fragment>

<Fragment>

<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">

<!-- TODO: Remove the comments around this Component element and the ComponentRef

below in order to add resources to this installer. -->

<!-- <Component Id="ProductComponent"> -->

<!-- TODO: Insert files, registry keys, and other resources here. -->

<!-- </Component> -->

</ComponentGroup>

</Fragment>

</Wix>

We suggest that you modify the file as described below.

As you can see in the code fragment above, the Manufacturer attribute is empty. Checking your project against

the WiX schema will generate an error message so you may want to set this attribute right now.

Pay attention to the MediaTemplate tag: by adding the EmbedCab="yes" attribute, you create a single .MSI file

as opposed to getting a CAB file along with the .MSI.

Page 12: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

12 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #3 – Specifying the Target Folder

TARGETDIR is a special Windows Installer property (see here ) that specifies the root destination directory to

which the installer delivers the files on the target machine. In fact, TARGETDIR is the main entity of the Windows

Installer architecture. To specify it, you open the File System Editor.

Essential. The File System Editor reveals the fact that WiX pre-creates two folder entries: Application

Folder and Program Files Folder. You need to delete the Program Files Folder entry.

Now specify the DefaultLocation property:

Page 13: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

13 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

The DefaultLocation property accepts all Windows Installer properties listed in Windows Installer Property

Reference at MSDN. Here is a couple of examples:

[LocalAppDataFolder][Manufacturer]\[ProductName] - typical for installing per-user things

[ProgramFilesFolder][Manufacturer]\[ProductName] - typical for installing 32-bit per-machine

programs

[ProgramFiles64Folder][Manufacturer]\[ProductName] - typical for installing 64-bit per-

machine programs

Step #4 – Application Project Outputs

Add all required project outputs to the Application Folder. Adding the Primary Output is required for

delivering the binary form of your code to the target PC.

Page 14: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

14 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

In the current version of WiX designer, adding the Primary Output doesn't add dependency assemblies

required by the application. You need to add such assemblies manually. Adding an assembly belonging to the

.NET Framework version (edition) that you currently use is not required.

Step #5 – Creating a Folder Hierarchy and Deploying Files

You use the File System Editor to specify how and where to create folders and files required for your

program.

To refer to system folders such as User's Desktop or Global Assembly Cache Folder, right-click the

File System on Target Machine node and choose Add Special Folder on the context menu:

Page 15: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

15 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #6 – Creating Registry Entries

You use the Registry Editor to create new and modify existing registry keys and values required for your

program.

Page 16: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

16 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #7 – Creating the Installer UI

WiX Designer provides a number of pre-created dialogs that you use to create the UI of the installer. If you need

your installer to support multiple languages, see How to make the setup project .

Open the User Interface Editor and add required dialogs.

Page 17: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

17 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Page 18: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

18 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #8 – Specifying Custom Actions

Use the Custom Actions Editor to specify the custom actions for your setup project.

Page 19: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

19 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Page 20: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

20 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Your First Web Setup Project

Here we demonstrate creating a standard setup project on an example of an existing Web application.

Make sure WiX Toolset is installed on your machine and registered with your Visual Studio. If WiX is not

listed in the About dialog of Visual Studio, install the WiX version supporting the Visual Studio version

that you use.

Step #1 – Adding a WiX Setup Project

In Visual Studio, open your solution and add a WiX project to it: go to the Visual Studio main menu and click File

-> Add -> New Project to open the Add New Project dialog.

Choose the Setup Project item in the Windows Installer XML node, specify the project name and click

OK.

Visual Studio will add the setup project to the solution and open the Product.wxs file.

Page 21: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

21 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #2 – Setup Project file

Product.wxs is the source file of your setup project. A newly created project contains the XML code shown

below.

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0"

Manufacturer="" UpgradeCode="aa918e08-bbdd-49fc-a9f2-fef05b153069">

<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is

already installed." />

<MediaTemplate />

<Feature Id="ProductFeature" Title="SetupProject1" Level="1">

<ComponentGroupRef Id="ProductComponents" />

</Feature>

</Product>

<Fragment>

<Directory Id="TARGETDIR" Name="SourceDir">

<Directory Id="ProgramFilesFolder">

<Directory Id="INSTALLFOLDER" Name="SetupProject1" />

</Directory>

</Directory>

</Fragment>

<Fragment>

<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">

<!-- TODO: Remove the comments around this Component element and the ComponentRef

below in order to add resources to this installer. -->

<!-- <Component Id="ProductComponent"> -->

<!-- TODO: Insert files, registry keys, and other resources here. -->

<!-- </Component> -->

</ComponentGroup>

</Fragment>

</Wix>

We suggest that you modify the file as described below.

As you can see in the code fragment above, the Manufacturer attribute is empty. When checking your project,

the WiX schema will generate an error message so you may want to set this attribute right now.

Pay attention to the MediaTemplate tag: by adding the EmbedCab="yes" attribute, you create a single .MSI file

as opposed to getting a CAB file along with the .MSI.

Page 22: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

22 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #3 – Specifying the Target Folder

TARGETDIR is a special Windows Installer property (see here ) that specifies the root destination directory to

which the installer delivers the files on the target machine. In fact, TARGETDIR is the main entity of the Windows

Installer architecture. To specify it, you open the File System Editor.

Essential. The File System Editor reveals the fact that WiX pre-creates two folder entries: Application

Folder and Program Files Folder. You need to delete the Program Files Folder entry.

Now convert the Application Folder item to Web Application Folder:

Page 23: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

23 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Now, you set the properties of the Web Application Folder as required.

Page 24: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

24 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #4 – Web Application Project Outputs

Add the Content Files project output to the Web Application Folder:

Add the Primary Output to the bin subfolder of the Web Application Folder:

In the current version of WiX designer, adding the Primary Output doesn't add dependency assemblies

required by the application. You need to add such assemblies manually. Adding an assembly belonging to

the .NET Framework version (edition) that you currently use is not required.

Step #5 – Creating a Folder Hierarchy and Deploying Files

You use the File System Editor to specify how and where to create folders and files required for your

application.

To refer to system folders such as User's Program Menu or Global Assembly Cache Folder, right-click

the File System on Target Machine node and choose Add Special Folder on the context menu:

Page 25: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

25 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #6 – Creating Registry Entries

You use the Registry Editor to create new and modify existing registry keys and values required for your

program.

Page 26: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

26 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #7 – Creating the Installer UI

WiX Designer provides a number of pre-created dialogs that you use to provide the UI of the installer. If you need

your installer to support multiple languages, see How to make the setup project .

Open the User Interface Editor and add required dialogs.

Page 27: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

27 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Page 28: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

28 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Step #8 – Specifying Custom Actions

Use the Custom Actions Editor to specify custom actions for your setup project.

In the screenshot below, the Primary Output of the CustomAction project is already added to the bin

subfolder:

Page 29: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

29 Add-in Express™

www.add-in-express.com

Getting Started

Designer for Visual Studio WiX Setup Projects

Page 30: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

30 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

How To

How to add merge module reference to merge module project

In the Solution Explorer window, select a merge module project, choose View | View WiX Editors |

File System Editor on the main menu, right-click the root entry (File System on Target Machine)

and choose Add Merge Module Reference on the context menu:

This opens a FileOpen dialog. Select a merge module and add it to your project:

Page 31: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

31 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

Page 32: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

32 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

Here's the merge module reference added:

The files and merge modules the referenced merge module provides are listed in the Files and

ModuleDependencies properties; see the screenshot above.

Page 33: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

33 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

How to add merge module to setup project

In the Solution Explorer window, select a merge module project, choose View | View WiX Editors |

File System Editor on the main menu, right-click the root entry (File System on Target Machine)

and choose Add Merge Module on the context menu:

This opens a FileOpen dialog. Select a merge module and add it to your project:

Page 34: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

34 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

Here's the merge module added:

Adding a module also adds all merge modules referenced by the merge module. The entry

policy_8_0_Microsoft_VC80_MFC_x86.msm is shown in the screenshot above because the

Microsoft_VC80_MFC_x86.msm merge module references it.

Note that a merge module cannot be moved into a custom folder. In all scenarios you always have it on the level

right below the root node. Should you need to deploy a .MSM file as a file (rather than a source of files and folders,

registry entries and custom actions), you add it to a folder by right-clicking the folder and choosing Add | File

on the context menu.

If however you need to specify the folder where you want the merge module to install its files, you use the Module

Retargetable Folder property of the merge module. Note that merge modules supplied by Microsoft are

mostly preconfigured so that modifications of the Module Retargetable Folder property do not apply and

the files that the merge module provides (see the Files property of the merge module) are delivered to

preconfigured system folders.

Page 35: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

35 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

How to make the setup project localizable?

We suggest that you create a copy of your setup project before performing the steps below.

Localizing the setup project: quick start

The UI forms of your setup project use text strings that WiX Designer combines into language-specific sets of

strings. Localizing means specifying what language(s) to use in the UI forms of your setup project.

In the Solution Explorer, right-click the setup project and choose View WiX Editors | User Interface

Editor.

In the User Interface Editor, right-click the Install or Administrative Install entry and choose Make

project localizable on the context menu. Note, this command is disabled if any form is added to the UI

editor. To get it enabled, you must delete all forms.

Page 36: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

36 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

The most obvious result of selecting this command is the language files (.WXL) added to the setup project:

There are at least two .WXL files:

StandardUI_neutral.wxl – a set of language-independent text strings; it is used when the installer

supporting a given set of languages starts on a machine where none of the languages is supported.

StandardUI_{language identifier}-{country identifier}.wxl – a set of language-dependent

text strings; it is used when the installer supporting a given set of languages starts on a machine where the

language identified using the combination of {language identifier} and {country identifier} is

installed.

Page 37: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

37 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

When such a setup project is built, you see the following folder structure in the project's output folder:

The language-specific folders contain .MSI files built for the corresponding language. They are used to build the

resulting .MSI; it supports all of the specified languages.

Behind the scenes

Choosing the Make project localizable command and specifying the supported languages modifies the

WiX as follows:

Page 38: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

38 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

<!-- Before: -->

<Product Language="1033" > Other attributes skipped -->

<Package /> <!-- Attributes skipped -->

<!-- Other tags skipped -->

</Product>

<!-- After: -->

<Product Language="!(loc.ID)"> <!-- Other attributes skipped -->

<Package Languages="1029,1031,1033,1049,3072" /> <!-- Other attributes skipped -->

<!-- Other tags skipped -->

</Product>

This modification of the Language attribute also modifies the meaning of the setup project's Localization

property. Before the Make project localizable command is chosen, the Localizable property lets you

specify what language to use for the installer's UI and prerequisites. After choosing this command, the

Localizable property allows choosing the current language for the user interface at design time (while you

create the setup project); at the same time this property specifies the language used for the prerequisites at run

time (when the installer created using this setup project is run).

Supported and non-supported languages

We call a language supported if the WiX Designer provides

text strings specific to this language. The text strings are

bundled to a language-specific file (.WXL), which is then

added to the setup project. In the Languages property, we

mark supported languages with an asterisk. For example, the

screenshot shows that of all the Chinese languages listed,

only the following two are supported:

Chinese (Simplified, PRC)

Chinese (Traditional, Taiwan)

All other languages shown in the screenshot aren't supported.

Choosing a non-supported language adds a file containing text strings from the language-neutral set of text

strings; see also Editing language-specific files.

Editing language-specific files

You can open a language-specific .WXL file in any text editor to edit it. Alternatively, you can edit the text strings

available for a given UI form in the Properties window: use the Localization property to choose a language

selected using the Languages property.

Page 39: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

39 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

Testing multiple-language installer

You can start your .MSI for a specific language using this command line:

Msiexec.exe /i MyInstaller.MSI TRANSFORMS=":{language identifier}"

You take a value for the {language identifier} above form the Languages attribute (see the Package tag

in Product.wxs), for example 1033.

Another way is to set the required language using the Format drop down on the Region and Language dialog

(see Control Panel) and then start the MSI.

Page 40: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

40 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

Language-specific prerequisites

The language that you specify using the Localization property is also used for the prerequisites if they are

specified in your project. If you need to have language-specific prerequisites, see (google for) section Building

Installation Package Bundles in the WiX manual.

Page 41: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

41 Add-in Express™

www.add-in-express.com

How To

Designer for Visual Studio WiX Setup Projects

How to prevent running Install and Uninstall custom actions during upgrade

To prevent running an Install custom action when the product is being upgraded, you can specify the following

criteria in the Condition property of the custom action:

NOT (Installed OR OLDPRODUCTFOUND)

The Installed property is described here. As to the OLDPRODUCTFOUND property, you need to define it yourself.

Here's an example:

<Upgrade Id="{%YOURGUID%}">

<UpgradeVersion Minimum="1.12.0" Property="NEWPRODUCTFOUND" OnlyDetect="yes"

IncludeMinimum="no" Language="1033" />

<UpgradeVersion Maximum="1.12.0" Property="OLDPRODUCTFOUND" OnlyDetect="no"

IncludeMinimum="yes" IncludeMaximum="no" Language="1033" />

</Upgrade>

To prevent running an Uninstall custom action when the program is upgraded, you specify the following criteria

in the Condition property of the custom action:

NOT UPGRADINGPRODUCTCODE

The UPGRADINGPRODUCTCODE property is described here.

Page 42: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

42 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Tips and Notes

Web Setup

Configuring IIS

Here's a citation from this page on msdn.microsoft.com:

When you create a Web Setup deployment project in Visual Studio 2005 on Windows Vista, you have to

turn on the "Windows IIS Metabase and IIS 6 configuration compatibility" feature. You also have to be

logged on as an Administrator; otherwise you will be unable to run setup.exe to install the project.

Prerequisites

To ensure that your application will install and run successfully, you must first ensure that all components upon

which your application is dependent are installed on the target computer. An example of such a component is the

.NET Framework; the correct version of the common language runtime must be present on the destination

computer before the application is installed.

To install the .NET Framework and other redistributables as a part of your installation, you can select these

prerequisites in the Prerequisites dialog box; to open it, see the Prerequisites property of the setup

project.

Page 43: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

43 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Page 44: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

44 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Create setup program to install

prerequisite components

Includes the prerequisite components in your application's Setup program

(Setup.exe) so that they will be installed before your application, in order

of dependency. By default, this option is selected. If it is not selected, no

Setup.exe is created.

Choose which prerequisites to

install

Specifies whether to install components. For example, by selecting the

check box next to Microsoft .NET Framework 4 (x86 and x64),

you specify that the Setup program verify whether this component is

installed on the target computer and install it if it is not already installed.

Download prerequisites from the

component vendor's web site

Specifies that the prerequisite components be installed from the vendor's

Web site. This is the default option.

Download prerequisites from the

same location as my application

Specifies that the prerequisite components be installed from the same

location as the application. This copies all the prerequisite packages to the

publish location. For this option to work, the prerequisite packages must be

on the development computer.

Download prerequisites from the

following location

Specifies that the prerequisite components be installed from the location

that you select. You can use the Browse button to select a location.

Page 45: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

45 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Custom Prerequisites

Installing prerequisites as part of your program installation is known as bootstrapping. Next, Visual Studio

generates a Windows executable program named Setup.exe, also known as a bootstrapper. The bootstrapper

is responsible for installing these prerequisites before your application runs.

Each prerequisite is a bootstrapper package; each package resides in a package folder in the

{Bootstrapper Packages} directory; the directory location depends on the Visual Studio version used (see

Bootstrapper folders). A bootstrapper package is a group of directories and files which contain manifest files that

describe how the prerequisite should be installed. If your application prerequisites are not listed in the

Prerequisites dialog box (see Prerequisites), you can create custom bootstrapper packages and add them

to Visual Studio.

This section describes creating custom prerequisites using the My Prerequisites dialog window.

Bootstrapper folders

The {Bootstrapper} directory is located in this folder:

VS 2010 – Program Files (x86)\Microsoft SDKs\Windows\v7.0a\Bootstrapper

VS 2012 – Program Files (x86)\Microsoft SDKs\Windows\v8.0a\Bootstrapper

VS 2013 – Program Files (x86)\Microsoft SDKs\Windows\v8.1a\Bootstrapper

VS 2015 – Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper

The {Bootstrapper Packages} directory is {Bootstrapper}\Packages.

The {Bootstrapper Schemas} directory is {Bootstrapper}\Schemas.

My Prerequisites Dialog

This dialog box allows you to perform the following steps that are required for creating a custom prerequisite:

Define a bootstrapper package (product) and specify system checks to perform before installing the

prerequisite, related products, and custom schedules.

Specify a file(s) that should be run to install the prerequisite as well as additional files, system checks, install

conditions, exit codes and security.

Build the bootstrapper package. This creates a package folder in the {Bootstrapper Packages}

directory and puts all prerequisite information into it.

Page 46: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

46 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

To open the My Prerequisites dialog box,

select the setup project, switch to the Properties

window, choose the MyPrerequisites

property and click the property editor button.

The dialog form stores the information about

packages and files in the file {setup project

name}.myprerequisites. Further on, this

information is used to generate a prerequisite

description complying with the schema located

in the {Bootstrapper Schemas} directory; the

prerequisite is created in a folder within the

{Bootstrapper Packages} directory.

Bootstrapper package

Click the Add Package button (see the

screenshot below) to add a Package node to the Packages node.

Select the newly created package and specify the Product Name and Product Code properties.

Product name (ProductName) – Required. Is used to create the package folder in the {Bootstrapper

Packages} directory.

Product code (ProductCode) – Required. This is the unique identifier used by the bootstrapper system to

identify packages. The string should not include any spaces, and should include the version number to

distinguish newer versions of the package. For example, for the .NET Framework, the formal package name

is Microsoft .NET Framework 2.0. So the ProductCode would be Microsoft.NET.Framework.2.0.

Page 47: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

47 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

At this stage you may choose to define system checks, which allow using the information about the machine to

determine whether to install the product, or whether the product can be installed; see System checks. Also, you

can define other products that this product either installs or depends on; see Related packages. Or, you can

create schedule items which define specific times at which commands that you specify in Install conditions should

be run; see Custom schedules.

When all settings are configured as required, you build the package by clicking the Build Package button:

Building the package creates a folder under the {Bootstrapper Packages} directory; the folder name is specified

in the Product name field. The folder contains all files describing the prerequisite.

Page 48: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

48 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Install File

Every package must contain a file(s) which is run to install the product. Click the Add Install button (see the

screenshot below) to add an install file node to the package node.

This opens the Add File dialog:

Specifying the file adds a new Install File node to the Package node. The screenshot below shows the Install File

node selected and the Display name property of the selected install file set.

Page 49: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

49 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

If there are several variations of the install file that differ in language and / or install conditions, you can clone a

properly described install file using the Clone Install File button and then correct the description of the cloned file:

Below are the properties to set for an install file.

Display name (DisplayName) – Required. This is the package name displayed in the Visual Studio .NET Pre-

requisites dialog. It should be localized for the language of the package.

Page 50: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

50 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

File name (FileName) – Required. The full path to the file used to install the package. Can also be specified as

a path relative to the WiX project folder.

Language (Language) – Required. The language the install file (specified in the File Name property) supports.

If the install file is language neutral, i.e. doesn't install any specific language, or supports all languages with a

single installer, use (neutral). Otherwise, set it to the supported language.

Copy on build (CopyOnBuild) – Optional. Specifies whether the bootstrapper should copy the package file onto

the disk at build time. The default is true.

HomeSite URL (HomeSite) – Optional. The location of the package on the remote server, if it is not included

with the installer.

Arguments (Arguments) – Optional. Command Line arguments to be passed to the file in the FileName.

License file (LicenseFile) – Optional. The full path to a file that contains the License Agreement (often referred

to as the EULA). Can also be specified as a path relative to the WiX project folder. The file should be plain text

(*.txt) file or RTF (*.rtf) file.

Reboot (Reboot) – Optional. Describes how to handle the Success, Reboot Needed and Fail, Reboot

Needed results from an ExitCode. Possible values are:

Defer – Wait until all packages have been installed, or until a package requires an immediate reboot.

Immediate – Reboot immediately.

Force – Reboot after the installation of this package is completed, regardless of the ExitCode result.

Always reboot.

None – Don't reboot, regardless of the exit code result. Never reboot.

Install time (InstallTime) – Optional. The estimated time, in seconds, it will take to install the package. This

value determines the size of the progress bar the bootstrapper displays to the user. The default is 0, in which

case no time estimate is specified.

Installed size (InstallSize) – Optional. The estimated amount of disk space, in bytes, that the package will

occupy after the installation is finished. This value is used in hard disk space requirements that the bootstrapper

displays to the user. The default is 0, in which case the bootstrapper does not display any hard disk space

requirements.

Package size (PackageSize) – Optional. Disk space required to install the package. This is usually

InstallSize + any temporary drive space needed + the size of the installation file.

Page 51: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

51 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

System checks

System checks allow using the information about the machine to determine whether to install the product, or

whether the product can be installed. The results of a check are stored in a property whose name is specified in

the Property for check result (Property) field, and then are usable by an InstallCondition; see

Install Conditions.

System checks include:

File Check

Registry Check

Registry File Check

MSI Product Check

External Check

GAC Check

File Check

A FileCheck searches the directory structure, beginning with

the folder specified in SpecialFolder, to determine if a file is

installed. For each instance of a FileCheck, the bootstrapper

will determine whether the named file exists, and return the

version number of the file. If the file does not have a version

number, the bootstrapper sets the property named by the

Property for check result field to 0. If the file does not

exist, the property is not set to any value.

If you set the

Path to Common Files\SpeechEngines and the

Special Folder to ProgramFilesFolder,

then on most machines the search will start in c:\Program Files\Common Files\SpeechEngines.

If you set the FileName to spcommon.dll, which is in a sub directory of the SpeechEngines folder, the file

will be found successfully if the depth is 1 or greater, but will not be found if the Depth is set to 0.

Page 52: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

52 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Property for check result (Property) – Required. The name of the property to store the result. This property

can be referenced from an InstallCondition; see Install Conditions.

File name to search for (FileName) – Required. The name of the file you want to find.

Path (SearchPath) – Required. The disk or folder in which to look for the file. This must be a relative path if

SpecialFolder is assigned; otherwise, it must be an absolute path.

Special folder (SpecialFolder)– Optional. A folder that has special significance to Windows. The default is to

interpret SearchPath as an absolute path. Valid values include the following:

AppDataFolder. The application data folder for this ClickOnce application; specific to the current user.

CommonAppDataFolder. The application data folder used by all users.

CommonFilesFolder. The Common Files folder for the current user.

LocalDataAppFolder. The data folder for non-roaming applications.

ProgramFilesFolder. The standard Program Files folder for 32-bit applications.

StartUpFolder. The folder that contains all applications launched at system startup.

SystemFolder. The folder that contains 32-bit system DLLs.

WindowsFolder. The folder that contains the Windows system installation.

WindowsVolume. The drive or partition that contains the Windows system installation.

Search depth (SearchDepth) – Optional. The depth at which to search sub-folders for the specified file. The

search is depth-first. The default is 0, which limits the search to the top-level folder specified by SpecialFolder

and Path.

Registry Check

A RegistryCheck is used to read a registry value and store it

in the indicated property. For each instance of

RegistryCheck, the bootstrapper checks whether the

specified registry key exists, or whether it has the indicated

value.

Property for check result (Property) – Required. The name

of the property to store the result. This property can be

referenced from an InstallCondition; see Install

Conditions.

Key (Key) – Required. The registry key to read. Use shortcut values for the hive: HKCR stands for

HKEY_CLASSES_ROOT, HKCU for HKEY_CURRENT_USER, and HKLM for HKEY_LOCAL_MACHINE.

Page 53: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

53 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Value (Value) – Optional. The name of the registry value to retrieve. The default is to return the text of the default

value. Value must be either a String or a DWORD. This is the data that is actually put into the Property.

Registry File Check

A RegistryFileCheck reads a registry value to determine a

directory to start searching for a file specified by File Name. For

each instance of RegistryFileCheck, the bootstrapper

retrieves the version of the specified file, first attempting to

retrieve the path to the file from the specified registry key. This

is particularly useful if you want to look up a file in a directory

defined by a value in the registry.

Property for check result (Property) – Required. The name

of the property to store the result. This property can be

referenced from an InstallCondition; see Install

Conditions.

Key (Key) – Required. The name of the registry key. Its value is interpreted as the path to a file. If this key does

not exist, Property is not set. Use shortcut values for the hive: HKCR stands for HKEY_CLASSES_ROOT, HKCU for

HKEY_CURRENT_USER, and HKLM for HKEY_LOCAL_MACHINE.

Value (Value) – Optional. The name of the registry value to retrieve. This is the data that is actually put into the

Property. The default is to return the text of the default value. Value must be a String.

File name (FileName) – Optional. The name of a file. If specified, the value obtained from the registry key is

assumed to be a directory path, and this name is appended to it. If not specified, the value returned from the

registry is assumed to be the full path to a file. The file version is stored in the Property.

Search depth (SearchDepth) – Optional. The depth at which to search sub-folders for the specified file. The

search is depth-first. The default is 0, which limits the search to the top-level folder specified by the registry key's

value.

MSI Product Check

A MSIProductCheck queries the Windows Installer system to determine if the product identified by the Product

Code is installed. For each instance of MSIProductCheck, the bootstrapper checks whether the specified

Microsoft Windows Installer installation has run until it is completed. The property value is set depending on the

state of that installed product. A positive value indicates that the product is installed, 0 or -1 indicates it is not

installed. (Please see the Windows Installer SDK function MsiQueryFeatureState for more information.) If

Windows Installer is not installed on the computer, Property is not set.

Page 54: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

54 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

To get the ProductCode, you use either the From File

button or the From Installed Apps button (see the

screenshot). Alternatively, you can open a Visual Studio

Installer project in the IDE, select the project in the Solution

Explorer, open the Properties and copy the ProductCode

property.

The resulting value is as follows.

Value Return

Code

Description

INSTALLSTATE_NOTUSED -7 component disabled

INSTALLSTATE_BADCONFIG -6 configuration data corrupt

INSTALLSTATE_INCOMPLETE -5 installation suspended or in progress

INSTALLSTATE_SOURCEABSENT -4 run from source, source is unavailable

INSTALLSTATE_MOREDATA -3 return buffer overflow

INSTALLSTATE_INVALIDARG -2 invalid function argument

INSTALLSTATE_UNKNOWN -1 unrecognized product or feature

INSTALLSTATE_BROKEN 0 broken

INSTALLSTATE_ADVERTISED 1 advertised feature

INSTALLSTATE_REMOVED 1 component being removed (action state, not settable)

INSTALLSTATE_ABSENT 2 uninstalled (or action state absent but clients remain)

INSTALLSTATE_LOCAL 3 installed on local drive

INSTALLSTATE_SOURCE 4 run from source, CD or net

INSTALLSTATE_DEFAULT 5 use default, local or source

Property for check result (Property) – Required. The name of the property to store the result. This property

can be referenced from an InstallCondition; see Install Conditions.

Product code (ProductCode) – Required. The GUID for the installed product.

Feature (Feature) – Optional. The GUID for a specific feature of the installed application.

Page 55: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

55 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

External Check

An external check runs an external executable file and stores

the exit code in the Property.

For each instance of ExternalCheck, the bootstrapper will

execute the named external program in a separate process, and

store its exit code in the property identified by Property.

ExternalCheck is useful for implementing complex

dependency checks, or when the only way to check for the

existence of a component is to instantiate it.

When the bootstrapper is built, the external check executable is

embedded into the setup.exe file so that it doesn't have to be

downloaded in order to perform installation checks. The

external check file can be written in any language, as long as it returns an exit code. It is not recommended to

write the external check in managed code (VB.NET, C#, etc...) however, since the .NET Framework may not be

installed on the computer yet, and so the external check will fail.

Property for check result (Property) – Required. The name of the property to store the result. This property

can be referenced from an InstallCondition; see Install Conditions.

File to run (PackageFile) – Required. The external program to execute. The program must be part of the setup

distribution package.

Arguments (Arguments) – Optional. Supplies command-line arguments to the executable named by

PackageFile.

GAC Check

A GAC Check checks if the specified assembly is installed into the Global Assembly Cache. The file version is

returned in the property.

The fastest and easiest way to get the assembly information is

to use either the File button or the GAC button (see the

screenshot). These buttons will allow you to select an assembly

and the Assembly Info will be loaded automatically for you.

Wildcards are not accepted.

Page 56: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

56 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Property for check result (Property) – Required. The name of the property to store the result. This property

can be referenced from an InstallCondition; see Install Conditions.

Assembly name (Name) – Required. The name of the assembly to check.

Version (Version) – Required. The version of the assembly. The version number has the format <major

version>.<minor version>.<build version>.<revision version>.

Public key token (PublicKeyToken) – Required. The abbreviated form of the public key associated with this

strongly named assembly. All assemblies stored in the GAC must have a name, version number, and public key.

Culture (Language) – Optional. The culture of a localized assembly. Default is neutral.

Platform (ProcessorArchitecture) – Optional. The computer processor targeted by this installation. Default

is MSIL.

Related packages

The Related Packages tab defines other products that either depend upon or are included in the current product.

Depends on (DependsOnProduct) – Specifying this flag signifies that the current product depends upon the

selected product, and that the selected product should be installed before the current one.

Includes (IncludesProduct) – Specifying this flag signifies that the selected product is included with the

current install, and does not require a separate installation.

Product code (Code) – Required. The code name of the included product.

Page 57: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

57 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Custom schedules

A Schedule defines a specific time at which an InstallCondition should be run; see Install Conditions.

Name (Name) – Required. The name of the schedule item. This corresponds to the ScheduleName property of

an InstallCondition; see Install Conditions. When an InstallCondition references the named schedule,

it will only be executed at the time indicated by that Schedule. Schedules may also be associated with the

FailIf and BypassIf properties, which restrict these conditional tests to being executed on the specified

schedule. For more information, see Install Conditions.

Build list (BuildList) – instructs the installer to execute an install condition command immediately after the

bootstrapping application is started.

Before package (BeforePackage) – instructs the installer to execute an install condition before the specified

package is installed.

After Package (AfterPackage) – instructs the installer to execute an install condition after the specified

package is installed.

See also Install Conditions.

Page 58: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

58 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Install Conditions

Each InstallCondition implements a test described by the corresponding row in the Install Conditions

grid.

Type – Required. A condition type. There are two condition types:

BypassIf (BypassIf) – describes a positive condition under which the install file should not be

executed.

FailIf (FailIf) – describes a positive condition under which the installation should stop.

Property (Property) – Required. The name of the property to test. The property must previously have been

defined by a system check (see System checks).

Comparison (Compare) – Required. The type of comparison to perform.

Value (Value) – Required. The value to compare with the property.

Message (String) – Optional. The text to display to the user upon failure. Is used with FailIf conditions only.

Schedule (Schedule) – Optional. The schedule that defines when this rule should be evaluated. The schedule

must previously have been defined, see Custom schedules.

Page 59: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

59 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Exit Codes

Exit Codes determine what the installation should do in response to an exit code from a package.

Exit Code (Value) – Required. The exit code value.

Result (Result) – Required. Specifies how the installation should react to this exit code. The valid values are:

Success. Flags the package as successfully installed.

SuccessReboot. Flags the package as successfully installed, and instructs the system to restart.

Fail. Flags the package as failed.

FailReboot. Flags the package as failed, and instructs the system to restart.

Message (String) – Optional. The value to display to the user in response to this exit code.

Use default exit code – Optional. Specifies whether to handle other exit codes in the specified way.

Format message from system (FormatMessageFromSystem) – Optional. Determines whether to use the

system-provided error message corresponding to the exit code, or use the value provided in String. If this

property is false, but String is not set, the system-provided error will be used.

Page 60: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

60 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Security

On this tab, you define a public key of the install file’s certificate signer and a hash of the install file.

Public key (ProductKey) – The encrypted public key of the package's certificate signer. Required if HomeSite

(see Install File) is used; otherwise optional.

Hash (Hash) – Optional. An SHA1 hash of the install file. It is used to verify the integrity of the file at install time.

If the identical hash cannot be computed from the package file, the package will not be installed.

Page 61: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

61 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Additional Files

This tab allows specifying extra files (e.g. configuration files) required for the install file.

Each row of the grid shown in the screenshot above describes a single file. The following file attributes are

applicable:

File (Name) - Required. The name of the file.

Home site url (HomeSite) - Optional. The location of the file on the remote server, if it is not included with the

installer.

Public key (ProductKey) – The encrypted public key of the package's certificate signer. Required if HomeSite

is used; otherwise optional.

Hash (Hash) – Optional. An SHA1 hash of the install file. It is used to verify the integrity of the file at install time.

If the identical hash cannot be computed from the package file, the package will not be installed.

Page 62: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

62 Add-in Express™

www.add-in-express.com

Tips and Notes

Designer for Visual Studio WiX Setup Projects

Merge Modules

Merge modules are used when creating a modular structure of a setup project. A merge module can deploy files

and folders to the target machine, create registry entries, specify file types, and deliver/run custom action

executables.

When using WiX, you create a merge module project by choosing the project template called Merge Module

Project under the Windows Installer XML node in the New Project dialog window of Visual Studio.

A merge module may depend on other merge modules. To create a dependency, see How to add merge module

reference to merge module project. To utilize a merge module in a setup project, see How to add merge module

to setup project.

Note that your setup project may produce warnings after you add a merge module. Some of the warnings are

expected; please refer to this page on wixtoolset.org.

Page 63: Designer for Visual Studio WiX Setup Projects - Add-in Expresscdn.add-in-express.com/docs/wixdsgnr.pdf · Designer for Visual Studio WiX Setup Projects ... WiX Designer supports creating

63 Add-in Express™

www.add-in-express.com

Finally

Designer for Visual Studio WiX Setup Projects

Finally

WiX Resources:

Web site: http://wixtoolset.org/

Documentation: http://wixtoolset.org/documentation/

Downloads: http://wixtoolset.org/releases/

Add-in Express resources:

Forums: http://www.add-in-express.com/forum/

Blog: http://www.add-in-express.com/creating-addins-blog/

Support email address: [email protected]