cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Setting up a Custon Action in Tuner

I'm trying to package MicroSoft MapPoint 2004 for distribution within my company. Since it is already an MSI, I am using Tuner to create an MST to go with it. Among other things, I don't want the EULA dialogs to come out. If I add the EULA value to the registry in the MST, the Installer does NOT install it. So I wrote a VBS Custom Action to add the registry entry at the end of the Install.

Since there is virtually no Custom Action support in Tuner, I am using the Direct Editor. I have found three tables which must have an entry -- Binary, CustomAction, and InstallExecuteSequence. I think the Binary table is what is causing the problem. I use the dialog to "import" my VBS source into the Binary table (Left click on {binary data}). I don't believe it is actually storing the VBS code. The VBS code has a couple of MsgBox messages which never come out in test installs. In addition, if I try to "export" the binary data, I get an error message -- "Error in writing File"! Very helpfull! :mad:

Anybody out there have any ideas for getting this to work?

Thanks,
Jim
(8) Replies
Jim,

I tested your behavior and I get the same message box when trying to write the binary data to a file. It also occurs if you were to edit the transform via DevStudio or even the MSI in direct edit mode via DevStudio. The only case it seems to work is when editing the .ism file (which doesn't help you). I submitted it to our development team under WO # 1-LNVRT as a potential bug. I'll give you more status on this as it is presented to me.

In the meantime, as a possible workaround if it is a short script, you can put the vbscript directly into the custom action (<255 characters due to the CustomAction table limitations). To do this, create a new entry in the CustomAction table with the following columns:

Action: NewCA
Type: 38
Source:
Target: Enter your script

If you wish to see further what this table entry should look like, open an .ism file in DevStudio and create a new custom action of type vbscript | stored in custom action.

Hope this helps.

Mark D
Software Quality Engineer
InstallShield Software Corp.
I gave your suggestion a try, and I can't make it work. VBS uses a "newline" to separate statements -- and the CustomAction table can't accept "newline"s within the target column. If anyone knows how to make VBS handle multiple commands on a line, please let me know!!

This is what I'm trying to execute:

Dim Sh
Set Sh = CreateObject("WScript.Shell")
sh.RegWrite "HKLM\Software\Microsoft\MapPoint\11.0\USA\Registration\", "EULA"
sh.RegWrite "HKLM\Software\Microsoft\MapPoint\11.0\USA\Registration\EULA", 0, "REG_DWORD"

Thanks,
Jim
I was able to reproduce the same behavior in Tuner, as well as in DevStudio. However, I was then able to export without error after closing and re-opening the project, and my VBS file looked good to me. The import does not appear to corrupt data.

I would recommend running Full MSI Validation Suite to ensure correctness of the MSI with MST, and log the installation for further troubleshooting information. Perhaps, there is a condition that prevent the custom action from firing.
Yes, I also was able to successfully "export" the VBS code by exiting after "importing" it, by exiting from Tuner, and re-entering. But, it still doesn't execute. There is no sign of it even being looked at, in a verbose log file. I have also tried several different sequence values -- no joy. I can see the sequence items on both sides of my sequence entry in the log, but not mine!

:confused:

Thanks,
Jim
Sorry, I should also have mentioned that Pre-validation and Post-validation both show 47 warnings and 3 errors. As far as I can tell, exactly the same...
If the custom action isn't in the log, perhaps, it isn't scheduled after all.

In addition, I would also verify the command line used to launch the MSI with MST to make sure that MST is actually applied to MSI.
You called it! I had spelled transforms incorrectly! The vbs code is now working correctly.

Thanks for all your help!

Jim
No prob. Been there, done that. 😛