10/05/2005 3826 views
G'day ...

Since our company isn't large enough (cost efficient-wise) for distrubution with tools such as SMS .. we decided to monitor the install-state by using vbs to fill out a SQL DB.

We've added to the .msi template (Windows Application.msi) :
[-] A few properties (DBUSER/DBNAME/DBPASSWORD etc)
[-] 2 custom actions (call VBS from embedded code); 1 for install, 1 for uninstall
These scripts either writes or deletes a row in the SQL DB, with pHp we designed a form .. etc.

Above steps have been added to the msi template, so therefor when repackaging there's no need to think of this mechanism. All works fine ... DB gets filled and all ..

But .. whenever I've got a vendor-based msi I need to make a transform, even if I don't need it for installing the app. This is no problem (functionally) .. you just add the same stuff mentioned above to the MST, and all works well ..

My problem is, while scripting with a few people together, there's going to be inconsistenties when people have to add the above named steps manually.

Therefor, my question is :
Is there any way I could add these custom actions and filling properties in some way to a mst template ?
Preferably one that's totally empty, except for these settings. I just want these things in a mst before I start i.e. installtailor.
Does anyone know if this is possible in some sort of way ...
Or should I rather be thinking Macro's .. which maybe is an option, however .. I'm not much with desiging macro's ..

Any ideas ??
Maybe it's n00b-like simple, but I just can't get it the way I want it ...

0 Comments   [ + ] Show comments


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

All Answers

I am pretty sure you can do the stuff in visual basic by adding a reference to msi.dll or vbscript by CreateObject("Windows.Installer") and then you full access to all of windows installer functions but it's surely nothing that can be done in a few steps or just a handfull lines of code.
Answered 10/05/2005 by: sini
Orange Senior Belt

I would check out:


The title of which is "How To Create a Universally Applicable Transform" - create one of those, set up your custom actions in it and use it as the basis for any new transforms you create.

Having said that, I'v never actually tried it myself, so do let us know how it goes.


Answered 10/05/2005 by: plangton
Second Degree Blue Belt

Hmm .. well, I've created a Universally Applicable Transform .. that wasn't really hard ...
Problem is just how to tell Wise (WPS) to use that template whenever I want to use InstallTailor ..
I'm also not sure how it 'll work out on the GUID level ...
Still trying to figure something out ... but thought-wise, I'm heading for macro's ..

<to be continued ..>
Answered 10/07/2005 by: BAF
Yellow Belt

G'day BAF,

Did you ever consider installing a script everywhere that runs at machine startup (or logon) to query all installed applications and then write the results to your database? You could also record application usage statistics using "FeatureUsageCount" and "FeatureUsageDate". It would have the added advantage of catching applications that weren't "legally" installed according to standard procedures, and possibly even legacy (non-MSI) installations?
Answered 10/07/2005 by: WiseUser
Fourth Degree Brown Belt