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

MSI Directory Table


3 replies to this topic

Sascha M.

Sascha M.
  • Full Members
  • 57 posts

Posted 24 June 2008 - 08:07

Hallo,

ich habe über den Direct Editor in IS 2008 einen Eintrag in der Directorytabelle gemacht, um darin vom Dialog DatabaseFolder zurückgegeben Wert zu speichern. Nun habe ich das Problem, dass bei OK-Klick des DatabaseFolder-Dialoges eine Fehlermeldung erscheint, dass kein Eintrag für meine Property in der Directorytabelle vorhanden wäre. Das ist aber falsch ich habe ihn eingetragen. Um dem Fehler auf die Spur zu kommen, habe ich das Projekt compiliert und mir die MSI-Datenbank mal im Orca angeschaut und da ist mir aufgefallen, dass die Directorytabelle viel weniger Einträge hat als in Installshield. Unter anderem fehlt auch mein Eintrag den ich in Installshield eingetragen hatte.
Kann mir jemand erklären, warum Installshield die Einträge beim compilieren entfernt?


ali

ali
  • Full Members
  • 1,008 posts

Posted 24 June 2008 - 09:51

Hallo,
es gibt in IS eine Einstellung, das nicht verwendete Ordner entfert werden. Schau mal in den Einstellungen zu deinem Release "Nicht verwendete Verzeichnisse entfernen" oder "Keep Unused Directorys".

Sascha M.

Sascha M.
  • Full Members
  • 57 posts

Posted 24 June 2008 - 10:02

Hi,
danke das war der Fehler. Ich hab mich schon dusselig gesucht :-)
Hätte da trotzdem noch ne Frage:
Ich verwende den Dialog damit der Benutzer ein Verzeichniss angeben/anlegen kann indem später Datendateien gespeichert werden sollen. Das Verzeichniss wird nicht von der Installation gefüllt, sondern später von anderen Programmen. Ist meine Vorgehensweise richtig, diesen Ordner über den DatabaseFolder-Dialog abzufragen und einen Eintrag in der Directorytabelle zu machen, oder sollte man so eine Pfadabfrage anders lösen?

ali

ali
  • Full Members
  • 1,008 posts

Posted 24 June 2008 - 10:17

hm, ich glaube ich würde es etwas anders lösen, meiner Meinung nach muss man nicht direkt im Directory Table eintragen.

Ich würde mir ein Feature anlegen für diesen Fall, diesem Feature eine Komponente zuordnen. In der Komponente eine Verzeichnis als Ziel erstellen, zusätzlich einen Regeintrag für das DirProperty der Komponente mit der ich den Wert in die Registry schreibe. Die Komponente mit den DirWert trage ich noch in die "Create Folder" Tabelle ein (wenn er da noch nicht drinne steht.)
Ich habe dann den Vorteil, das ich über APPSearch nach dem Ordner über den Regeintrag suchen kann, weiter kann ich die Komponenteneinstellungen auch bei einem Upgrade nutzen, diesen Ordner zu verwalten (permanent installieren...)
Das Feature könnte man dann im Dialog an/abwählern, je nachdem würde der Ordner erstellt oder nicht.