Hello,
I've the suspect, that CAs from MSMs don't run correct.
I've in MSM
CA hugo.msmGUID
DIR1.msmGUID [DIR2] 35
DIR1.msmGUID is a directory from the MSM.
DIR2 is a property from the main MSI.
CA type 35
The called and running (seen in LOG file) CA does not seam to change the value of DIR1.msmGUID.
What do I do wrong?
Thanks in advance.
Johannes
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
CAs from Merge MOdules
Started by
Johannes John
, Nov 11 2008 11:07
4 replies to this topic
Posted 12 November 2008 - 01:17
Once a merge module is merged into the project, there is no reference to the merge module anymore.
Just want to confirm what you are trying to do.
The CA in MSM needs to set DIR1.msmGUID to the value of DIR2?
What does the row look like in the MSI file for the CA once you have merged in the merge module?
Are you sure that DIR1.msmGUID is an entry in the 'Directory' table, even after its merged?
Have you tried running a validate on your MSI package? This might pick any syntax issues you have.
Just want to confirm what you are trying to do.
The CA in MSM needs to set DIR1.msmGUID to the value of DIR2?
What does the row look like in the MSI file for the CA once you have merged in the merge module?
Are you sure that DIR1.msmGUID is an entry in the 'Directory' table, even after its merged?
Have you tried running a validate on your MSI package? This might pick any syntax issues you have.
Posted 12 November 2008 - 11:38
Hallo Luke,
thanks for your reply.
Yes, the CA in the MSM has to set DIR1.msmGUID to the value of DIR2.
DIR2 is a property of the MSI.
The CA row in the MSI looks like:
CAname.msmGUID 35 DIR1.msmGUID [DIR2]
It's included in the MSI over the ModuleInstallExecuteSequece table after CostFinalize.
The DIR1.msmGUID is an entry in the MSI.
In the MSM it looks like:
DIR1.msmGUID DIR0.msmGUID dir1default
And there I've found an other problem where in the MSI this row looks like:
DIR1.msmGUID TARGETDIR DIR0.msmGUID
But as long as the DIR1.msmGUID entry exists in the MSI direcrory table, the CA from the MSM should be able to set the directory.
A CA from the MSI with this function is sucessfull.
My IS2008 seams to have a problem, when including the MSM directory table.
The WI 3.1 seam to have a problem with CAs included from an MSM.
Where do I do something wrong?
Regards!
Johannes
thanks for your reply.
Yes, the CA in the MSM has to set DIR1.msmGUID to the value of DIR2.
DIR2 is a property of the MSI.
The CA row in the MSI looks like:
CAname.msmGUID 35 DIR1.msmGUID [DIR2]
It's included in the MSI over the ModuleInstallExecuteSequece table after CostFinalize.
The DIR1.msmGUID is an entry in the MSI.
In the MSM it looks like:
DIR1.msmGUID DIR0.msmGUID dir1default
And there I've found an other problem where in the MSI this row looks like:
DIR1.msmGUID TARGETDIR DIR0.msmGUID
But as long as the DIR1.msmGUID entry exists in the MSI direcrory table, the CA from the MSM should be able to set the directory.
A CA from the MSI with this function is sucessfull.
My IS2008 seams to have a problem, when including the MSM directory table.
The WI 3.1 seam to have a problem with CAs included from an MSM.
Where do I do something wrong?
Regards!
Johannes
Posted 12 November 2008 - 21:59
If the action works when you add it to the MSI, but not from the merge module, then you need work out what the difference is between the tables when you do this.
W3.1 doesn't have a problem, it will most likely be a bug with install shield.
Can you look at the msi with ORCA and post exactly what each of the fields are set to for the custom action in the merge module, and then in the MSI file once you have merged the merge module?
Its really hard to work out what each field is from the description below.
W3.1 doesn't have a problem, it will most likely be a bug with install shield.
Can you look at the msi with ORCA and post exactly what each of the fields are set to for the custom action in the merge module, and then in the MSI file once you have merged the merge module?
Its really hard to work out what each field is from the description below.
Posted 13 November 2008 - 09:44
Hello Luke,
yes, my ORCA is running.
and in the MSM file
in the directory table:
BIN.1DB33933_1A68_409A_A15D_D08664812093
INSTALL.1DB33933_1A68_409A_A15D_D08664812093
bin
BIN_EN.1DB33933_1A68_409A_A15D_D08664812093
BIN.1DB33933_1A68_409A_A15D_D08664812093
en
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
CRR_NET2005_BO27.1DB33933_1A68_409A_A15D_D08664812093
BIN_t
in the CA table:
set_LOC_CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
35
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
[LOC_CRR_NET2005_CF]
In the MSI file
in the directory table
BIN.1DB33933_1A68_409A_A15D_D08664812093
TARGETDIR
BIN.1DB33933_1A68_409A_A15D_D08664812093
BIN_EN.1DB33933_1A68_409A_A15D_D08664812093
TARGETDIR
BIN_EN.1DB33933_1A68_409A_A15D_D08664812093
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
CRR_NET2005_BO27.1DB33933_1A68_409A_A15D_D08664812093
BIN_t
in the CA table:
set_LOC_CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
35
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
[LOC_CRR_NET2005_CF]
Sset_LOC_CRR_NET2005_BIN
35
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
[LOC_CRR_NET2005_CF]
in the InstallExecuteSequence table:
set_LOC_CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
LOC_CRR_NET2005_CF<>""
1001
Sset_LOC_CRR_NET2005_BIN
LOC_CRR_NET2005_CF<>""
1009
The BIN... and the BIN_EN... directory seam to be an IS import MSM problem.
But the execution of the set... CA returns 0.
The execution of Sset... CA returns 1 and a PROPERTY CHANGE:...
Regards!
Johannes
yes, my ORCA is running.
and in the MSM file
in the directory table:
BIN.1DB33933_1A68_409A_A15D_D08664812093
INSTALL.1DB33933_1A68_409A_A15D_D08664812093
bin
BIN_EN.1DB33933_1A68_409A_A15D_D08664812093
BIN.1DB33933_1A68_409A_A15D_D08664812093
en
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
CRR_NET2005_BO27.1DB33933_1A68_409A_A15D_D08664812093
BIN_t
in the CA table:
set_LOC_CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
35
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
[LOC_CRR_NET2005_CF]
In the MSI file
in the directory table
BIN.1DB33933_1A68_409A_A15D_D08664812093
TARGETDIR
BIN.1DB33933_1A68_409A_A15D_D08664812093
BIN_EN.1DB33933_1A68_409A_A15D_D08664812093
TARGETDIR
BIN_EN.1DB33933_1A68_409A_A15D_D08664812093
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
CRR_NET2005_BO27.1DB33933_1A68_409A_A15D_D08664812093
BIN_t
in the CA table:
set_LOC_CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
35
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
[LOC_CRR_NET2005_CF]
Sset_LOC_CRR_NET2005_BIN
35
CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
[LOC_CRR_NET2005_CF]
in the InstallExecuteSequence table:
set_LOC_CRR_NET2005_BIN.1DB33933_1A68_409A_A15D_D08664812093
LOC_CRR_NET2005_CF<>""
1001
Sset_LOC_CRR_NET2005_BIN
LOC_CRR_NET2005_CF<>""
1009
The BIN... and the BIN_EN... directory seam to be an IS import MSM problem.
But the execution of the set... CA returns 0.
The execution of Sset... CA returns 1 and a PROPERTY CHANGE:...
Regards!
Johannes