Hi,

I've got an application which I'm trying to repackage by creating a mst file. The application install file is an exe file which extracts and starts a msi file. By default the msi file will install 5 of 6 components. What I want to do is to install the component that is not installed by default, and not install 2 of the components which are installed by default. I extracted the exe file and used the msi file I found there. From this I used Wises Install Tailor and created the mst file.
The problem is that when I do the install, the features settings seems to be as they are default in the msi file, because the 5 default components get installed and not the 6th component that I want installed. I even tried to edit the msi file directly, but the same thing happens.
The only way I can seem to get the installation as I prefer is by doing an Administrativ install using msiexec /a.
I'm going to distribute this application via Citrix Installation Manager.
Can I use the Administrative install and distribute the msi file that gets created in the administrative install, or is there a way I can create a mst file that will overcome the problems I've had so far?
I'm also considering tryin Orca as a last try, but I guess it won't any difference..?

Thanks in advance!
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
- What command line are you using for the install? This presumes you have tested the install stand-alone, before allowing Citrix to get in the way, which is always a good idea, whatever the deployment mechanism might be.
- Have you logged the install, to determine if the transform is being applied?
Answered 01/12/2009 by: VBScab
Red Belt

Please log in to comment
0
If you open the vendor msi in orca and apply your mst to it:

Does it change the "level" in the feature table for the features that your trying to change.
or does the INSTALLLEVEL property get changed.

Also have you checked that there isn't a custom action that sets INSTALLLEVEL depending on another parameter

What is the app?
Answered 01/12/2009 by: timmsie
Fourth Degree Brown Belt

Please log in to comment
0
This is my command line: "msiexec /i xxxx.msi TRANSFORMS=xxxx.mst /qb /log m:\logfile.log

I do believe the mst is beeing applied because in the end of the logfile it says:
Property(S): TRANSFORMS = |F:\IKT\Drift\Citrix\PS4\IMShare\Basware v1\Basware Invoice Processing (IP)\BasWare Invoice Processing (IP) 5.0 Patch 1.mst
Property(S): RecacheTransforms = F:\IKT\Drift\Citrix\PS4\IMShare\Basware v1\Basware Invoice Processing (IP)\BasWare Invoice Processing (IP) 5.0 Patch 1.mst

But if I open the mst file in Wise, when I go and look at Features, the default values from the msi file is listed.
Answered 01/12/2009 by: jgb
Orange Belt

Please log in to comment
0
I'm quite new at this, but when I open the files in Orca, the level of the choosen components to install has changed with the value 100. The components that's not choosen for install has the value 101.
How can I check if there is a custaom action that sets INSTALLLEVEL?
If I go to CustomAction in Orca, it lists a lot of lines starting with InstallTailorPropertyxx

The name of the app is Basware Invoice Processing

I can get a correct installation (as far as I can see) using the msi file created if I make an administrative install (msiexec /a).
I don't know if this is a way to do it, or if best practice is to make mst files
Answered 01/12/2009 by: jgb
Orange Belt

Please log in to comment
0
- I'd recommend that folks ALWAYS use verbose logging:

msiexec /i xxxx.msi TRANSFORMS="xxxx.mst" /qb /l*v m:\logfile.log

- In the log, you can easily tell which features were selected for installation, as they will have entries like this:

MSI (s) (38:90) [22:18:04:610]: Feature: Whatever; Installed: Absent; Request: Local; Action: Local
where you can see the feature called 'Whatever' isn't present on the workstation (Installed: Absent) but has been selected for installation (Request: Local).
Answered 01/12/2009 by: VBScab
Red Belt

Please log in to comment
0
I went through the logfile, and it says:
Admin; Installed: Absent; Request: Null; Action: Null

and I can see that Request should be Local insted of Null.
Using Wise Install Tailor, I chose to install the Admin module, so I'm not sure why the Request says NULL.... are there other settings I have to check beside making my choices going through the install wizard ?
Answered 01/12/2009 by: jgb
Orange Belt

Please log in to comment
0
This explains about the INSTALLLEVEL property
http://msdn.microsoft.com/en-us/library/aa369536.aspx

So as you say the value changes to 100 from 101 then the INSTALLLEVEL must be set to 100

You can see the INSTALLLEVEL property in the "Property" table

As for the custom action - it will be a "type" 51 with the source value of INSTALLLEVEL and the "target" will be the value it gets set to.

Hope that helps with your understanding at least and maybe not with your problem
Answered 01/12/2009 by: timmsie
Fourth Degree Brown Belt

Please log in to comment
0
I went through the logfile, and it says:
Admin; Installed: Absent; Request: Null; Action: Null
This is how the 2 features ("features", remember, NOT "components") which you DON'T want to be installed should look. Do they or are they also set as "Request: Local"? If they are, you need to double-check that the transform is being applied, as I don't think it is.

It's easy enough to tell if the transform is being applied, as your log file will be littered with lines with the text "Transforming table [TableName]" where "[TableName]" is the name of, er, an MSI table. One of the first tables will be the 'Property' table, so I expect the first hit will look like this:MSI (s) (78:C0) [15:39:26:623]: Transforming table Property.

If there are NO such entries, your transform isn't being applied.
Answered 01/12/2009 by: VBScab
Red Belt

Please log in to comment
0
There is several transforming table properties in the script, but still doesn't seem to add the components I chose, the components chosen shows the value Absent and NULL. also the productcode doesn't change:
MSI (s) (2C:08) [19:34:14:332]: Transforming table Property.
MSI (s) (2C:08) [19:34:14:332]: Command Line: IP=M:\Program Files\BasWare\IP\ TARGETDIR=M:\ ALLUSERSPROFILE=M:\Documents and Settings\All Users\ BASWARE=M:\Program Files\BasWare\ WORKSTATION=M:\Program Files\BasWare\IP\Workstation\ INSTALLDIR=M:\Program Files\BasWare\IP\Workstation\ ROOTDRIVE=M:\ SECONDSEQUENCE=1 SHARED=M:\Program Files\BasWare\Shared\ SHARED2=M:\Program Files\BasWare\Shared\ EXECUTEACTION=INSTALL USERPROFILE=M:\Documents and Settings\ctxinstall\ ACTION=INSTALL SOURCEDIR=F:\IKT\drift\citrix\ps4\imshare\Basware v1\Basware Invoice Processing (IP)\ MS.3207D1B0_80E5_11D2_B95D_006097C4DE24=M:\WINDOWS\system32\ MS.576D64B0_7413_11D2_B954_006097C4DE24=M:\WINDOWS\system32\ MS.7EBEDD31_AA66_11D2_B980_006097C4DE24=M:\WINDOWS\system32\ MS.7EBEDD3E_AA66_11D2_B980_006097C4DE24=M:\WINDOWS\system32\ MS.8C0C59A0_7DC8_11D2_B95D_006097C4DE24=M:\WINDOWS\system32\ BASWARE.5688F3CB_3811_4029_AEB6_8FA9F70EF327=M:\Program Files\Basware\ SHARED.5688F3CB_3811_4029_AEB6_8FA9F70EF327=M:\Program Files\Basware\Shared\ INSTALLDIR.5688F3CB_3811_4029_AEB6_8FA9F70EF327=M:\Program Files\Basware\Shar
MSI (s) (2C:08) [19:34:14:332]: PROPERTY CHANGE: Adding PackageCode property. Its value is '{408DC28E-C368-4209-94FD-A3F658ED5310}'.
MSI (s) (2C:08) [19:34:14:332]: PROPERTY CHANGE: Adding RecacheTransforms property. Its value is 'F:\IKT\drift\citrix\ps4\imshare\Basware v1\Basware Invoice Processing (IP)\BasWare Invoice Processing (IP) 5.0 Patch 1.mst'.
MSI (s) (2C:08) [19:34:14:332]: PROPERTY CHANGE: Adding TRANSFORMS property. Its value is '|F:\IKT\drift\citrix\ps4\imshare\Basware v1\Basware Invoice Processing (IP)\BasWare Invoice Processing (IP) 5.0 Patch 1.mst'.
MSI (s) (2C:08) [19:34:14:332]: PROPERTY CHANGE: Adding TRANSFORMSSECURE property. Its value is '1'.
MSI (s) (2C:08) [19:34:14:332]: PROPERTY CHANGE: Adding TRANSFORMSATSOURCE property. Its value is '1'.
MSI (s) (2C:08) [19:34:14:332]: Product Code passed to Engine.Initialize: '
MSI (s) (2C:08) [19:34:14:332]: Product Code from property table before transforms: '{B17CC595-63A6-488B-A653-F0B0E2383378}'
MSI (s) (2C:08) [19:34:14:332]: Product Code from property table after transforms: '{B17CC595-63A6-488B-A653-F0B0E2383378}'
MSI (s) (2C:08) [19:34:14:332]: Product not registered: beginning first-time install
MSI (s) (2C:08) [19:34:14:332]: PROPERTY CHANGE: Adding ProductState property. Its value is '-1'.

the log also has a lot af InstallTailor entries, so I guess the installation has figured out that InstallTailer has been used -but I'm not sure if the mst file is correctly added...
Action start 19:34:14: InstallTailorProperty23.
MSI (s) (2C:08) [19:34:14:426]: Transforming table CustomAction.
Action ended 19:34:14: InstallTailorProperty23. Return value 1.
MSI (s) (2C:08) [19:34:14:426]: Doing action: InstallTailorProperty24
Action 19:34:14: InstallTailorProperty24.
Action start 19:34:14: InstallTailorProperty24.
MSI (s) (2C:08) [19:34:14:426]: Transforming table CustomAction.
Action ended 19:34:14: InstallTailorProperty24. Return value 1.
MSI (s) (2C:08) [19:34:14:426]: Doing action: InstallTailorProperty25
Action 19:34:14: InstallTailorProperty25.
Action start 19:34:14: InstallTailorProperty25.
MSI (s) (2C:08) [19:34:14:426]: Transforming table CustomAction.
MSI (s) (2C:08) [19:34:14:426]: PROPERTY CHANGE: Adding System.7EBEDD31_AA66_11D2_B980_006097C4DE24 property. Its value is 'M:\WINDOWS\system32\'.
Action ended 19:34:14: InstallTailorProperty25. Return value 1.
MSI (s) (2C:08) [19:34:14:426]: Doing action: InstallTailorProperty26
Action 19:34:14: InstallTailorProperty26.
Action start 19:34:14: InstallTailorProperty26.
MSI (s) (2C:08) [19:34:14:426]: Transforming table CustomAction.
Action ended 19:34:14: InstallTailorProperty26. Return value 1.
MSI (s) (2C:08) [19:34:14:426]: Doing action: InstallTailorProperty27
Action 19:34:14: InstallTailorProperty27.
Action start 19:34:14: InstallTailorProperty27.
MSI (s) (2C:08) [19:34:14:426]: Transforming table CustomAction.
MSI (s) (2C:08) [19:34:14:426]: PROPERTY CHANGE: Adding System.7EBEDD3D_AA66_11D2_B980_006097C4DE24 property. Its value is 'M:\WINDOWS\system32\'.
Action ended 19:34:14: InstallTailorProperty27. Return value 1.
MSI (s) (2C:08) [19:34:14:426]: Doing action: LaunchConditions
Action 19:34:14: LaunchConditions. Evaluating launch conditions
Action start 19:34:14: LaunchConditions.
Action ended 19:34:14: LaunchConditions. Return value 1.
MSI (s) (2C:08) [19:34:14:426]: Doing action: FindRelatedProducts
Action 19:34:14: FindRelatedProducts. Searching for related applications
Action start 19:34:14: FindRelatedProducts.
MSI (s) (2C:08) [19:34:14:426]: Skipping FindRelatedProducts action: already done on client side
Action ended 19:34:14: FindRelatedProducts. Return value 0.
MSI (s) (2C:08) [19:34:14:426]: Skipping action: ISPreventDowngrade (condition is false)
MSI (s) (2C:08) [19:34:14:426]: Skipping action: CCPSearch (condition is false)
MSI (s) (2C:08) [19:34:14:426]: Skipping action: RMCCPSearch (condition is false)
MSI (s) (2C:08) [19:34:14:426]: Doing action: ValidateProductID
Action 19:34:14: ValidateProductID.
Answered 01/13/2009 by: jgb
Orange Belt

Please log in to comment
0
There is several transforming table properties in the script, but still doesn't seem to add the components I chose, the components chosen shows the value Absent and NULL. also the productcode doesn't change:
First, please use the 'CODE' tag (accessed by clicking the button marked '<%' in any Reply To Message window) when posting lengthy texts like log files.

Second, why would you expect the ProductCode to change? Does your transform change it? If it does, stop it doing it that!

Third, your command line properties really belong in the transform. You can still override them on the command line but yours is kind of unwieldy!

Fourth, "FEATURES", not "COMPONENTS"! :)

Let me digest this for a while and I'll come back to you.
Answered 01/13/2009 by: VBScab
Red Belt

Please log in to comment
0
These properties have no place on the command line and should be removed:
ALLUSERSPROFILE
EXECUTEACTION
USERPROFILE
ACTION
MS.3207D1B0_80E5_11D2_B95D_006097C4DE24
MS.576D64B0_7413_11D2_B954_006097C4DE24
MS.7EBEDD31_AA66_11D2_B980_006097C4DE24
MS.7EBEDD3E_AA66_11D2_B980_006097C4DE24
MS.8C0C59A0_7DC8_11D2_B95D_006097C4DE24
BASWARE.5688F3CB_3811_4029_AEB6_8FA9F70EF327
SHARED.5688F3CB_3811_4029_AEB6_8FA9F70EF327
INSTALLDIR.5688F3CB_3811_4029_AEB6_8FA9F70EF327

I've never seen the 'InstallTailorPropertyxx' properties before and I've done more response transforms than I care to remember. Is an embedded MSI being called somewhere in the install? Check the %TEMP% folder during the 'parent' MSI's execution.

To begin with, I'd test the install using a conventional target, i.e. a local hard drive, rather than a network drive. That always complicates things. When you have that down, THEN switch your ROOTDRIVE, INSTALLDIR, etc.
Answered 01/13/2009 by: VBScab
Red Belt

Please log in to comment
0
Thank you for all your help so far all of you!
Still struggeling, and trying to figure out what's wrong trying to read the logs.
I've checked the INSTALLLEVEL, and it is set to 100. All the components I want installed has the value 100 and the ones I don't want to install has the value 101.
In the Property table, the components I've chosen that's not installed by default from the msi has the entries "INSTALL_NOTDEFAULT" which I believe will be correct.
Answered 01/13/2009 by: jgb
Orange Belt

Please log in to comment
0
Get your point, new at this - my first post on the forum [&:]
Answered 01/13/2009 by: jgb
Orange Belt

Please log in to comment
0
The install file is actually an exe file with an embedded msi, I extracted the file and collected the msi. Would it be more correct to use the exe file?
I have already tried the install on the local drive, but I can do another try and see if the log and mst file will look different
Answered 01/13/2009 by: jgb
Orange Belt

Please log in to comment
0
No, stick with the MSI.

I suspect that the INSTALL_DEFAULT property is being used in the MSI as a condition for the various features. Search through the MSI for that property and let us know what you find.
Answered 01/13/2009 by: VBScab
Red Belt

Please log in to comment
0
This is an extract from the condition table:

Admin 1 INSTALL_ADMIN ="INSTALL_DEFAULT"
Admin 101 INSTALL_ADMIN="INSTALL_NOTDEFAULT"
AdminLocal 1 SCTARGET_ADMIN="LOCAL" AND SCLOCATION="STARTMENU"
AdminLocal 101 SCTARGET_ADMIN="REMOTE"
AdminLocalDT 1 SCTARGET_ADMIN="LOCAL" AND SCLOCATION="DESKTOP"
AdminLocalDT 101 SCTARGET_ADMIN="REMOTE"
AdminRemote 1 SCTARGET_ADMIN="REMOTE" AND SCLOCATION="STARTMENU"
AdminRemote 101 SCTARGET_ADMIN="LOCAL"
AdminRemoteDT 1 SCTARGET_ADMIN="REMOTE" AND SCLOCATION="DESKTOP"
AdminRemoteDT 101 SCTARGET_ADMIN="LOCAL"
BWCalctax 0 INSTALL_CALCTAX="INSTALL_NOTAVAILABLE"
BWCalctax 1 INSTALL_CALCTAX="INSTALL_DEFAULT"
BWCalctax 101 INSTALL_CALCTAX="INSTALL_NOTDEFAULT"
BWOrderCheck 0 INSTALL_ORDERCHECK="INSTALL_NOTAVAILABLE"
BWOrderCheck 1 INSTALL_ORDERCHECK="INSTALL_DEFAULT"
BWOrderCheck 101 INSTALL_ORDERCHECK="INSTALL_NOTDEFAULT"
BWOrderCheckC 0 INSTALL_ORDERCHECK_C="INSTALL_NOTAVAILABLE"
BWOrderCheckC 1 INSTALL_ORDERCHECK_C="INSTALL_DEFAULT"
BWOrderCheckC 101 INSTALL_ORDERCHECK_C="INSTALL_NOTDEFAULT"
BWTransfer 0 INSTALL_TRANSFER="INSTALL_NOTAVAILABLE"
BWTransfer 1 INSTALL_TRANSFER="INSTALL_DEFAULT"
BWTransfer 101 INSTALL_TRANSFER="INSTALL_NOTDEFAULT"
BWWorkFlowClient 0 INSTALL_WORKFLOWCLIENT="INSTALL_NOTAVAILABLE"
BWWorkFlowClient 1 INSTALL_WORKFLOWCLIENT="INSTALL_DEFAULT"
BWWorkFlowClient 101 INSTALL_WORKFLOWCLIENT="INSTALL_NOTDEFAULT"
FastScan 0 INSTALL_FASTSCAN="INSTALL_NOTAVAILABLE"
FastScan 1 INSTALL_FASTSCAN="INSTALL_DEFAULT"
FastScan 101 INSTALL_FASTSCAN="INSTALL_NOTDEFAULT"
FastScanLocal 1 SCTARGET_FASTSCAN="LOCAL" AND SCLOCATION="STARTMENU"
FastScanLocal 101 SCTARGET_FASTSCAN="REMOTE"
FastScanLocalDT 1 SCTARGET_FASTSCAN="LOCAL" AND SCLOCATION="DESKTOP"
FastScanLocalDT 101 SCTARGET_FASTSCAN="REMOTE"
FastScanRemote 1 SCTARGET_FASTSCAN="REMOTE"
FastScanRemote 101 SCTARGET_FASTSCAN="LOCAL"
Master 0 INSTALL_MASTER="INSTALL_NOTAVAILABLE"
Master 1 INSTALL_MASTER="INSTALL_DEFAULT"
Master 101 INSTALL_MASTER="INSTALL_NOTDEFAULT"
MasterLocal 1 SCTARGET_MASTER="LOCAL" AND SCLOCATION="STARTMENU"
MasterLocal 101 SCTARGET_MASTER="REMOTE"
MasterLocalDT 1 SCTARGET_MASTER="LOCAL" AND SCLOCATION="DESKTOP"
MasterLocalDT 101 SCTARGET_MASTER="REMOTE" OR INSTALL_MASTER="INSTALL_NOTDEFAULT"
MasterRemote 1 SCTARGET_MASTER="REMOTE" AND SCLOCATION="STARTMENU"
MasterRemote 101 SCTARGET_MASTER="LOCAL"


And this is a clip from the property table

INSTALL_MDAC INSTALL_DEFAULT
ISCHECKFORPRODUCTUPDATES 1
MINIMIZEDIALOGS 0
INSTALL_ADMIN INSTALL_NOTDEFAULT
INSTALL_CALCTAX INSTALL_NOTDEFAULT
INSTALL_FASTSCAN INSTALL_DEFAULT
INSTALL_FINEREADER INSTALL_DEFAULT
INSTALL_IPSTATUSAPI INSTALL_NOTDEFAULT
INSTALL_MASTER INSTALL_DEFAULT
INSTALL_MONITOR INSTALL_DEFAULT
INSTALL_ORDERCHECK INSTALL_NOTDEFAULT
INSTALL_ORDERCHECK_C INSTALL_NOTDEFAULT
INSTALL_PROCLIENT INSTALL_DEFAULT
INSTALL_ROWDATACLIENT INSTALL_DEFAULT
INSTALL_TRANSFER INSTALL_NOTDEFAULT
INSTALL_USERLOGIN INSTALL_DEFAULT
INSTALL_WORKFLOWCLIENT INSTALL_NOTDEFAULT
SCTARGET_ADMIN LOCAL
SCTARGET_FASTSCAN LOCAL
SCTARGET_MASTER LOCAL
SCTARGET_MONITOR LOCAL
SCTARGET_PROCLIENT LOCAL
IPROOTDIR http://
IPROOT_EXETARGET \\ServerName\BWRoot\Executables\


I chose to install: Admin, Calctax, Master, Monitor, Transfer, Workflow
Answered 01/13/2009 by: jgb
Orange Belt

Please log in to comment
0
Change the :
INSTALL_ADMIN property value to INSTALL_DEFAULT
INSTALL_CALCTAX property value to INSTALL_DEFAULT
INSTALL_TRANSFER property value to INSTALL_DEFAULT
INSTALL_WORKFLOWCLIENT property value to INSTALL_DEFAULT
Answered 01/13/2009 by: timmsie
Fourth Degree Brown Belt

Please log in to comment
0
Thank you, this resolved the problem!
I have a question though: Shouldn't install tailer be able to set this change in the transform file by itself, or is this a usual way of doing it?

Only thing left now (besides some thoroughly testing) is to register a dll.
What is the best way to get that into a package? it would be a command like: regsvr32 xxx.dll
Answered 01/13/2009 by: jgb
Orange Belt

Please log in to comment
0
hehe nice heads-up timmsie!

jgb:
InstallTailor don't take into account of conditions, only the INSTALLELVEL combined with Feature.Level for feature.
BAD to use any DLL self-reg action.
As you are using Wise use the wisecompcap exe to generate a .reg file for the COM advertising info and then import it to a component.
Most often it also works by just turning on advertising and then import the installed DLL file for wise to populate the COM-advertise related tables.
Answered 01/13/2009 by: AngelD
Red Belt

Please log in to comment
0
Good to here that works. Mostly thanks to Ian, I just stole his thunder at the end [;)]

For registration read AngelD's post completely agree
Answered 01/13/2009 by: timmsie
Fourth Degree Brown Belt

Please log in to comment
0
Mostly thanks to Ian, I just stole his thunder at the end [;)]I was busy packaging for a change! LOL

The detail on registering COM+ DLLs here is sketchy (no offence, lads!) so search AppDeploy for WiseComCapture. There you'll find at least one post with some fairly detailed instructions. Note that if you come across one mentioning a script I built to do multiple files, ignore it: after finding adulterated copies all over the web, I stopped sending it out.
Answered 01/14/2009 by: VBScab
Red Belt

Please log in to comment
0
Thank you all! [:D]
I'm waiting for the systemowner to return with feedback whether we will need the selfregistration of the dll file, but if so, and I need more help, I will open a new post with a subject more suitable
Answered 01/14/2009 by: jgb
Orange Belt

Please log in to comment
0
In my experience, when you ask that question, the system owner will stare at you for rather longer than is polite, blink a couple of times, blush, and then launch into some diatribe intended to send you away while he/she scuttles off to work out what on Earth you were talking about.

If it registers OK using RegSvr32, you'll almost certainly need to add its registration information. No harm can come from adding it anyway so just go ahead.
Answered 01/14/2009 by: VBScab
Red Belt

Please log in to comment
0
he, he, you are so right! [:D] Needed that laugh now, has been too long days at work lately... and ofcourse, answer from systemowner -via software supplier - we need the selfregistration of the file.... I'll open a new post on the forum.....
Answered 01/15/2009 by: jgb
Orange Belt

Please log in to comment
0
No need to post a new question. See post # 22.
Answered 01/15/2009 by: VBScab
Red Belt

Please log in to comment
0
Used wisecomcapture as explained. Just one question in the end: The dll is not in the installation package, because it's registering a dll from a connected server. I haven't deleted the entries in the tables (only exist in the Registry table), do I need to do this?
(Found a post from Symantecs pages: "Step 3:
Now delete the registry entries from "Class" table, "ProgID" Table, "Registry" table, which is associated with "Comdlg32.ocx" Component in the package. And also delete the "Comdlg32.ocx" entry in the selfreg table. "
I will now get the systemowner to test the packages...
Answered 01/15/2009 by: jgb
Orange Belt

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