Jump to content


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.
Photo

Directory entry not created in Merge module


6 replies to this topic

Johannes John

Johannes John
  • Full Members
  • 223 posts

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

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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.

Johannes John

Johannes John
  • Full Members
  • 223 posts

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

Edited by Johannes John, 12 September 2008 - 10:00.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 September 2008 - 15:29

Which custom action type are you using?

Johannes John

Johannes John
  • Full Members
  • 223 posts

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.




Edited by Johannes John, 17 September 2008 - 17:19.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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).



Johannes John

Johannes John
  • Full Members
  • 223 posts

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