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.
Directory entry not created in Merge module
Started by
Johannes John
, Sep 11 2008 10:30
6 replies to this topic
Posted 11 September 2008 - 10:30
Hello,
does someone can confirm, that IS2008 has the following problem:
A directory entry is not created into the MSM, if this entry is only used e.g. in a custom action.
It seams to be necessary to have an entry in the createfolder table.
Regards!
Johannes
does someone can confirm, that IS2008 has the following problem:
A directory entry is not created into the MSM, if this entry is only used e.g. in a custom action.
It seams to be necessary to have an entry in the createfolder table.
Regards!
Johannes
Posted 11 September 2008 - 22:20
Installshield can remove (what it thinks are) unused directory table entries. You can switch this off.
Note that Windows Installer will only reliably create empty directories if they are listed in the CreateFolder table.
Note that Windows Installer will only reliably create empty directories if they are listed in the CreateFolder table.
Stefan Krüger
InstallSite.org twitter facebook
Posted 12 September 2008 - 10:00
Thank you Stefan,
meanwhile I have found this switch too.
But there remains, that the optimization isn't correct, if the directory entry occures in a CA.
Thanks!
Johannes
meanwhile I have found this switch too.
But there remains, that the optimization isn't correct, if the directory entry occures in a CA.
Thanks!
Johannes
Edited by Johannes John, 12 September 2008 - 10:00.
Posted 17 September 2008 - 15:29
Which custom action type are you using?
Stefan Krüger
InstallSite.org twitter facebook
Posted 17 September 2008 - 17:10
It's CA type 291.
But:
In this CA I create a directory entry without MSM-GUID.
The value is only the property of the MSM-directory-entry.
But how to use a MSM-directory-entry in a direct way?
It can only be used in it's property mapping.
But:
In this CA I create a directory entry without MSM-GUID.
The value is only the property of the MSM-directory-entry.
But how to use a MSM-directory-entry in a direct way?
It can only be used in it's property mapping.
Edited by Johannes John, 17 September 2008 - 17:19.
Posted 17 September 2008 - 17:52
Yes, in contrast to "set a property" custom actions, the set a directory" action seems to require an existing row in the Directory table for this identifier. So InstallShield shouldn't remove this row if its used in a Set-Directory custom action.
QUOTE |
But how to use a MSM-directory-entry in a direct way? It can only be used in it's property mapping. |
I don't understand this part of the question.
Maybe you can use a type 51 (set property) action, before CostFinalize?
BTW iin some places InstallSield hides the module GUID, althou it is actually there (as you can see if you open the MSM with Orca).
Stefan Krüger
InstallSite.org twitter facebook
Posted 18 September 2008 - 08:19
Hello Stefan,
To "It can only be used in it's property mapping."
Should be "It can only be used by its property mapping."
To write a directory entry, we use CA 35.
To read a directory entry, we use the property, which has the name of the directory entry and its mapped value.
Therefor:
When we want to use the value of a directory entry, we allways use the workaround by the property.
If I create a property (51) or a directory (35) and define the value ( not the identifyer) by a directory value, I use the property, I can't define the directory by itself.
To: Maybe you can use a type 51 (set property) action, before CostFinalize?
I nead the driectory entry in all MSIs, which use this CA of this MSM in the same created way. Therefor I nead CA 35.
The problem is not to get the value, the problem was, that the optimization eleminates the directory entry, which was only used by its property.
Regards
Johannes
To "It can only be used in it's property mapping."
Should be "It can only be used by its property mapping."
To write a directory entry, we use CA 35.
To read a directory entry, we use the property, which has the name of the directory entry and its mapped value.
Therefor:
When we want to use the value of a directory entry, we allways use the workaround by the property.
If I create a property (51) or a directory (35) and define the value ( not the identifyer) by a directory value, I use the property, I can't define the directory by itself.
To: Maybe you can use a type 51 (set property) action, before CostFinalize?
I nead the driectory entry in all MSIs, which use this CA of this MSM in the same created way. Therefor I nead CA 35.
The problem is not to get the value, the problem was, that the optimization eleminates the directory entry, which was only used by its property.
Regards
Johannes