/build/static/layout/Breadcrumb_cap_w.png

How to make simple MSI

Hi,

Hows everyone doing?

I've been looking into how to build MSI's, and i've now got a migrane.

So i'm hoping someone can tell me, what i think is something very simple.

If i have two dll's and a font, which i don't want to actually store in the MSI, can i register them?

My supervisor has asked me to look into it, because we're going to move to a GPO MSI distribution system, and apparently GPO only works with MSI.

Essentially, i have a piece of library software, which has a MSI, however, they've just sold us an addon, with an exe installer, which copies several files to a centrally stored database folder, and then registers a couple of the files its just coppied.

If i were to do it in batch, i'd just use regserv32 for the dll's and then copy the font, and reg add it.

Can anyone lead me in the right direction?

If theres some documentation "Online Crash Course in MSIs", i'd be extremely greatful :-)

Thanks,

Matthew Millar
Congleton High School

0 Comments   [ + ] Show comments

Answers (12)

Posted by: pjgeutjens 14 years ago
Red Belt
0
Matthew,

make sure your exe installer doesn't just extract that msi to your user's temp folder during install (in <your profile>\Local Setting\temp)

if it does try to launch an msiexec.exe /i <path to msi> /qn /LV* <path to log file>

the /qn makes it a silent install, if you want just a progress dialog try /qb-, or leave it out if you want to just run the installer's GUI

PJ
Posted by: staffmm 14 years ago
Senior Yellow Belt
0
Hey PJ,

Thanks for replying.

The exe isn't fancy in the slightest.

It actually uses a setup.txt file, as an answer file.

The exe copies aload of files to the server, then from the files its copied, it registers a font and two dlls.

In the MSI for the clients i think i just need to register the font and two dlls, but i don't want to make local copies if possible, i'd like to register them whilst they're shared from the server.

Is this possible?

Thanks,

Matthew Millar
Posted by: staffmm 14 years ago
Senior Yellow Belt
0
Hi,

If its easier to copy the dlls and font, and then register them, I don't mind.

i was just trying to keep it completely central, so when upgrades are sent out, the only thing that needs upgrading is the server.

Thanks,

Matthew Millar
Posted by: pjgeutjens 14 years ago
Red Belt
0
tbh if you're just registering a font and 2 network DLL's, an MSI might be going overboard abit.
Since the dll's wouldn't actually be part of your MSI (since they don't have to be installed on the client), registering them would involve a custom action in your MSI.

Might be easier just to write a script of some sort for this imo and deploying this to your clients.

PJ
Posted by: staffmm 14 years ago
Senior Yellow Belt
0
Hi PJ,

What i was hoping to do was amend the MSI that we were given originally, to install the actual full application, so that it also installs this addon.

I was told that it had to be an MSI for GPO deployment.

Is that not the case?

Thanks,

Matthew Millar
Posted by: pjgeutjens 14 years ago
Red Belt
0
Ok , seems I misunderstood something. Didn't realise that you actually did have an MSI.

I suppose you could register your DLL's, either through calling a Custom Action (write a vbs that does the registration and make a custom action from it), or by capturing the registration of the files and adding the registry keys to your MSI...

Neither of these I'd consider to be really clean solutions, but it should work.

A couple things to take into account.


- I don't know which, if any packaging tool you have available. If you haven't got one yet look into Orca or InstEd.
- Since you essentially are starting from a vendor suplied MSI, best practice is to create a Transform File (.MST) and run this on top of your MSI, command line is msiexec.exe /i <MSI file> TRANSFORMS=<MST File>
- for the font you can use the Fonts table in the MSI. Once you've selected a packaging tool, select this table and call help (F1) and you should get a good explanation on how to use them. this would mean adding the font file to the MST though.
- if you register the DLL's located on the network, what happens if sometime in the future the server goes down or is renamed..?

So the 3 key terms you should look into are

- Transform File (MST)
- Custom Actions
- Fonts Table

This might be a lot to delve into if you're not too experienced with this, but I hope you'll get where you need to be [:)]

PJ
Posted by: staffmm 14 years ago
Senior Yellow Belt
0
Hi PJ,

Thanks for your reply, looks like i've got alot of reading to do.

I've looked into orca before, but i couldn't find any guides on how to use it, as a newbie. Do you know of any good ones?

I'll check the help files.

Whats the difference between orca and InstEd?

The programs main database is also located on the server, so if the server were to go down, it wouldn't particularly matter that you couldn't access the dll's, because the program would halt long before trying to access them.

I was told that an MST is just an answer file, how would i register dll's and fonts using an answer file, wouldn't i need to edit the MSI, so that it registers the dll's and the MST just provides the dll's location? Or have i mis-understood how an MST works?

I'm happy to read up on MSI's if theres any good references available, but i've had a hard job finding ones that aren't just advertising a packaging system. Do you know of any good ones?

Thanks,

Matthew Millar
Posted by: pjgeutjens 14 years ago
Red Belt
0
I was told that an MST is just an answer file, how would i register dll's and fonts using an answer file, wouldn't i need to edit the MSI, so that it registers the dll's and the MST just provides the dll's location? Or have i mis-understood how an MST works?

an MST is much more than just an answer file. You can basically alter any aspect of an MSI installation with it. Not only "record" your answers in the dialogs, you can set properties, add files, change/add registry keys etc etc (or add the registration of your DLLs in this case...)

As for InstEd and Orca, they're MSI table editors, they offer you a view of the internal tables of your MSI, and allow you to change them, apply an MST to them etc. I've personally never used InstEd but it seems to be a bit more user friendly than Orca (which just shows you the tables), so you might want to have a look at it.

As for a comprehensive reference on MSI's, have a look at the Windows Installer Reference on MSDN.

PJ
Posted by: AngelD 14 years ago
Red Belt
0
The free "The Definitive Guide to Windows Installer Technology" eBook should get you started.
http://nexus.realtimepublishers.com/dgwit.php
It's a bit old but still applies.

ORCA is from Microsoft and InstEd (not from MS) is like ORCA but with better features.
I would recommend InstEd over ORCA.

If you only want to deploy some few files and registry then check out WiX which is an open source project from Microsoft to generate MSI from a XML formatted file and more.
Posted by: yuri 14 years ago
Orange Belt
0
If you're completely new to packaging I would recommend an evaluation version of Wise because it has a pretty good user interface. This will give you a better idea on what you are doing. After you have created a working package you could check the tables to see what changes you actually made.
Posted by: anonymous_9363 14 years ago
Red Belt
0
Use of an authoring tool should come AFTER study of Windows Installer technology, not before or instead of.
Posted by: yuri 14 years ago
Orange Belt
0
Imo studying Windows Installer tech should be combined with hands-on experience.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ