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

Gemeinsam genutzte Dateien


7 replies to this topic

goliaf

goliaf
  • Members
  • 13 posts

Posted 31 May 2005 - 14:19

Hallo,

ich arbeite mit IS DevStudio 9 und realisiere meine Projekte mit InstallShield Script. Es gibt bei uns mehrere verschiedenen Programmen, die einzeln zu erhalten und demzufolge auch einzeln zu installieren sind. Aber jede von diesem Programm bringt mit sich einen „Manager“, der gleich für alle Programme bleibt und ist in jedem InstallShield Projekt als Komponente hinzugefügt. Wenn zwei oder mehr unsere Programmen auf einem Rechner installiert werden, wird der „Manager“ natürlich nur einmal in einen Unterverzeichnis von <COMMONFILES> installiert. Als Eigenschaften für diese Komponente habe ich in allen Projekten „gemeinsam genutzt“ auf „ja“ und „deinstallieren“ auch auf „ja“ geschaltet. Mit dieser Kombination wollte ich eigentlich erreichen, dass der „Manager“ zusammen mit der zu letzt deinstallierte Programm auch deinstalliert wird. Leider funktioniert das nicht, und der „Manager“ wird mit der erste Deinstallation auch weggeschmissen. Kann mir jemand erklären was ich falsch gemacht habe und wie ich den gewünschte Verhalten erreichen kann?

Danke im Voraus

Sergej Pelagejtschew

Edited by goliaf, 31 May 2005 - 19:40.


mandy

mandy
  • Members
  • 121 posts

Posted 01 June 2005 - 12:52

Annehmend habe ich richtig verstanden... Benutzen Sie ein "merge module" and stellen Sie das "msidbComponentAttributesSharedDllRefCount" Attribut für den "Component".

Das Programm darf nicht bereits existieren.


goliaf

goliaf
  • Members
  • 13 posts

Posted 01 June 2005 - 14:03

Ich arbeite nicht mit MSI. Ich verwende nur InstallShield eigene Engine. Danke trozdem.

mandy

mandy
  • Members
  • 121 posts

Posted 02 June 2005 - 20:22

Sorry!

My first post in "German" - I'll stick to the English forums in future!! sad.gif


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 June 2005 - 14:44

mandy: kein Problem, bitte poste auch weiter im deutschen Forum
goliaf: das war mir beim Lesen deiner Frage auch nicht ganz klar. Ich verschiebe den Thread jetzt ins zutreffende Forum.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 June 2005 - 14:45

Das ist seltsam. Kannst du mal prüfen, ob der SharedDLL Zähler in der Registry korrekt erhöht wird?

goliaf

goliaf
  • Members
  • 13 posts

Posted 13 July 2005 - 09:36

Hallo,

nach einigen Versuchen habe ich jetzt das Problem verstanden. Die Dateien selbst werden so wie gewünscht erst zusammen mit der zu letzt deinstallierte Programm deinstalliert, aber der Verknüpfung in Start – Programme - <Programmgruppe> und dazugehörige Registrierungseinträge werden doch bei jede Deinstallationslauf gelöscht. Ich kann natürlich der Verknüpfung und Registrierungseinträge, nicht so wie jetzt gemacht wurde, mit Komponente verknüpfen, sonder selbst per Script setzen. Bei Deinstallation kann ich dann SharedDLL Zähler ablesen und bei Bedarf der Verknüpfung und die Einträge aus Registrierung selbst per Script löschen. Das wehre einer Lösung des Problems… Ich verstehe, aber, hier der Logik nicht: wenn der InstallShield die Dateien einer Komponente zu Recht stehen lässt, wieso löscht er dann die dazugehörige Verknüpfungen und Registrierungseinträge?

Grüße
Sergej Pelagejtschew


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 13 July 2005 - 12:25

Für Verknüpfungen und Registry-Einträge gibt es keine RefCounts, d.h. du musst das manuell behandeln. Alternativ MSI verwenden, dort gibt es (etwas ähnliches wie) RefCounts auch für Registry und Shortcuts.