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

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

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
Answered 11/18/2009 by: pjgeutjens
Red Belt

Please log in to comment
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
Answered 11/19/2009 by: staffmm
Senior Yellow Belt

Please log in to comment
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
Answered 11/19/2009 by: staffmm
Senior Yellow Belt

Please log in to comment
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
Answered 11/19/2009 by: pjgeutjens
Red Belt

Please log in to comment
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
Answered 11/19/2009 by: staffmm
Senior Yellow Belt

Please log in to comment
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
Answered 11/19/2009 by: pjgeutjens
Red Belt

Please log in to comment
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
Answered 11/24/2009 by: staffmm
Senior Yellow Belt

Please log in to comment
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
Answered 11/24/2009 by: pjgeutjens
Red Belt

Please log in to comment
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.
Answered 11/24/2009 by: AngelD
Red Belt

Please log in to comment
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.
Answered 11/25/2009 by: yuri
Orange Belt

Please log in to comment
0
Use of an authoring tool should come AFTER study of Windows Installer technology, not before or instead of.
Answered 11/25/2009 by: VBScab
Red Belt

Please log in to comment
0
Imo studying Windows Installer tech should be combined with hands-on experience.
Answered 11/27/2009 by: yuri
Orange Belt

Please log in to comment
Answer this question or Comment on this question for clarity