ZedZip
ZedZip

Reputation: 6470

How to execute Wix custom action after installation?

I am using Wix3 to install WCF service to IIS.

How can I use my custom action (c#) function after installation completed? i.e. I need to open installed web.config file and replace hostname with real one.

Any ideas?

Upvotes: 13

Views: 42642

Answers (3)

Peter Kelly
Peter Kelly

Reputation: 14391

There is a sequence of Actions in Windows Installer. The WiX tutorial has a good section on events (and is a great resource anyway).

A typical example of getting something to run after InstallFinalize is to get the installed app to start.

<InstallExecuteSequence>
   <Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>

Upvotes: 10

Christopher Painter
Christopher Painter

Reputation: 55581

Why would you:

1) Need a custom action? 2) Do it after the install instead of during the install?

WiX has a built-in extension for handling what you are trying to do:

XmlFile Element (Util Extension)

It will update your XML after the file has been installed and handle rollback scenarios as well.

What you will have to write a CA for though is reading the XML value back into a property ti handle repair and upgrade situations. Read:

The WiX toolset's "Remember Property" pattern.

Upvotes: 6

Cosmin
Cosmin

Reputation: 21416

You can schedule it after InstallFinalize action in InstallExecuteSequence.

Upvotes: 11

Related Questions