1

How can we have single MSI file with different configuration for each user.

So when I push it, the configuration will be according to the username.

This is for a custom utility application.

jscott
  • 24,204
  • 8
  • 77
  • 99
Eddy
  • 257
  • 3
  • 10
  • 22

2 Answers2

2

I'm not an expert with this, but to get you in the right direction:

You will need a "transform file", which has the .mst extension. The MST file basically overwrites or sets properties in the MSI file.

You should check out this article, it explains it pretty well: http://www.frickelsoft.net/blog/?p=240.

You can use ORCA (a free tool from Microsoft) to create the MST, but there should be a few commercial software products as well. You apply the transformation file, using msiexec, with the /t switch, e.g. msiexec /i your.msi /t transform.mst.

jscott
  • 24,204
  • 8
  • 77
  • 99
Lucky Luke
  • 1,555
  • 1
  • 9
  • 12
  • 1
    +1 You may also define properties on the command line: `msiexec /i your.msi EXAMPLEPROPERTY=something` – jscott Jul 27 '11 at 18:53
  • THanks for your reply guys, but will this do the trick, it seem like its msi editor which will change the msi file it self, so basically i will have package for each change – Eddy Jul 27 '11 at 19:10
  • It's my understanding that the MSI file remain unchanged, but the transformations you specify in the MST file will be applied after/during the installation of the MSI. – Lucky Luke Jul 27 '11 at 21:11
  • @Eddy Open the MSI in Orca. Select Transform -> New Transform. You can then save the resultant changes as a separate .MST file. – jscott Aug 13 '11 at 09:32
1

What constitutes the configuration differences between each user? Is it a single xml file with settings? Some registry values? Something else?

Setting up configuration isn't really an MSI setup task, but a post install administrator task. I would not use MSI to manage this if I could help it. It is slow and error prone work. In the past I have written executables myself which will do post-setup work based on the environment I am in. Typically such an executable will take a file installed by the MSI and process it for each individual user. You can run such an executable once using Microsoft's ActiveSetup feature. See my answer here: MSI package for reg deployment

Stein Åsmul
  • 2,566
  • 4
  • 25
  • 38