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

Patch: Problem Registryeinträge und Verknüpfungen


16 replies to this topic

Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 27 November 2007 - 16:34

Hallo,

ich habe folgendes Problem. Vor einiger Zeit habe ich eine Installation erstellt. Da sich einige Daten verändert haben, musste ich eine neue Version der Installation erstellen. Die Updatefunktion funktioniert auch wunderbar, wenn das installierte Programm unter C:\Programme (also dem Defaultverzeichnis) liegt.
Wurde bei der Erstinstallation ein anderes Verzeichnis als das Defautlverzeichnis angegeben, werden zwar alle Dateien richtig aktualisiert, allerdings werden die Registryeinträge bzw. Verknüpfungen neu geschrieben. Statt das bei der Erstinstalltion angegebene Verzeichnis, steht z.B. im Verknüpfungsziel C:\Programme, also das Defaultverzeichnis. Das darf natürlich nicht passieren.
Es wird die Variable [INSTALLDIR] verwendet.
Komisch ist auch, dass z.B. bei der Verknüpfung auch ein Arbeitsverzeichnis angegeben, dies aber beim Update richtig ist, obwohl dort auch [INSTALLDIR] verwendet wird.
Ich hoffe ich konnte mein Problem richtig schildern.
Wie kann ich dies korrigieren oder kann ich angeben, dass die Installation beim Update die Verknüpfungen bzw. Registryeinträge nicht anfassen soll.

Vielen Dank schonmal im voraus.

Gruß

Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 28 November 2007 - 17:03

Ich hoffe, dass ich das Problem verständlich formuliert habe.

ali

ali
  • Full Members
  • 1,008 posts

Posted 29 November 2007 - 11:23

es wäre hilfreich wenn du angeben würdest, welche Art von Update du durchführst. Minor, Major oder small bzw. patch.
Vielleicht hilft dir die Funktion AppSearch bei deinem Problem weiter.

Edited by ali, 29 November 2007 - 11:24.


Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 29 November 2007 - 11:52

Das kann ich so nicht beantworten.
Habe im Menü "Patch-Design" den alten Setup + neuen Setup hinzugefügt und mir den Patch erstellen lassen.
Woran erkenne ich welche Art es ist?

ali

ali
  • Full Members
  • 1,008 posts

Posted 30 November 2007 - 08:47

ja, du machst also einen Patch. Ich würde dir raten, bei der Installation den Inhalt von [INSTALLDIR] in die Registry zu schreiben, und beim Reparieren oder generell über AppSearch wieder auszulesen. Beim Patchen läuft auch ein Reparieren ab, nur das hier die neuen Komponenten hinzugefügt werden.

Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 30 November 2007 - 13:09

Könntest du darauf eventuell genauer eingehen. Ich weiss zwar was du mir mitteilen möchtest, allerdings weiss ich nicht wie ich das bewerkstelligen soll.
In welchem Abschnitt des Handbuchs steht was dazu?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 November 2007 - 13:41

Zum Auslesen eines Registry-Eintrages kannst du die Ansicht "Systemsuche" verwenden.

Eine weitere Möglichkeit wäre, alle Registry-Einträge per Systemsuche auszulesen und diesen Wert dann wieder zurückzuschreiben. Nur wenn der Eintrag nicht existiert verwendest du den Defaultwert.

Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 30 November 2007 - 14:05

Versuche es gerade, habe aber Verständnisschwierigkeiten.

Ich habe eine Installation mit 3 Features, für jedes Feature wird ein Registryeintrag geschrieben.

Beispiel: Feature 1
[HKEY_LOCAL_MACHINE\SOFTWARE\[NAME]\Feature1\Installation]
"InstallPath"="[INSTALLDIR]Feature1"

Jetzt habe ich mit dem Assistenten der Systemsuche einen Eintrag hinzugefügt:

Was möchten Sie suchen?
Registrierungseintrag

Wie möchten Sie danach suchen?
Registrierungsstamm: HKEY_LOCAL_MACHINE
Registrierungsschlüssel: SOFTWARE\[NAME]\Feature1\Installation\InstallPath
Registrierungswert: [INSTALLDIR]Feature1

Was möchten Sie mit dem Wert tun?
Welcher Eintrag muß aus der Liste ausgewählt werden und welche zusätzliche Option ist zu treffen? Ich verstehe es nicht so ganz.

Muß ich sonst noch was beachten?

ali

ali
  • Full Members
  • 1,008 posts

Posted 30 November 2007 - 15:16

Wie möchten Sie danach suchen?
Registrierungsstamm: HKEY_LOCAL_MACHINE
Registrierungsschlüssel: SOFTWARE\[NAME]\Feature1\Installation
Registrierungswert: InstallPath

Was möchten Sie mit dem Wert tun?
Nur Wert in einer Eigenschaft speichern.

Wert der Eigenschaft.
INSTALLDIR



ali

ali
  • Full Members
  • 1,008 posts

Posted 30 November 2007 - 15:34

Noch ein Nachtrag:

Anstelle von INSTALLDIR kannst du auch ein anderes Verzeichnisproperty nehmen. Wenn du zb. Feature1 in ein Unterverzeichnis von INSTALLDIR installiert hast, kannst hier über die suche dieses Property setzen z.b. FEATURE1. oder du liest direkt das INSTALLDIR aus und setzt auch das INSTALLDIR wieder auf diesen Wert, die Unterverzeichnisse sollten dann automatisch mit gesetzt werden, weil diese auf INSTALLDIR verweisen.

ich hoffe das ist jetzt nicht zu verwirrend.

Edited by ali, 30 November 2007 - 15:36.


Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 30 November 2007 - 15:49

Ich denke dass ich es jetzt verstanden habe. Allerdings ist es so, dass ich keinen Registryeintrag auf INSTALLDIR habe, sondern für alle Features.

Beispiel:

Feature1 wird unter [INSTALLDIR]\Feature1 installiert. In der Registry steht dann:
[HKEY_LOCAL_MACHINE\SOFTWARE\[NAME]\Feature1\Installation]
"InstallPath"="[INSTALLDIR]Feature1"
Feature2 und 3 dito.

Ich möchte eigentlich nur INSTALLDIR auslesen und es korrekt wieder setzen. Wie kann ich das mit den gegeben Möglichkeiten bewerkstelligen?

Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 30 November 2007 - 15:52

Folgendes noch:

Komischerweise wird bei den Verküpfungen das Arbeitsverzeichnis entweder NICHT angefasst oder das Verzeichnis richtig gesetzt. Wie kommt das?


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 November 2007 - 16:01

Schau mal im Uninstall-Eintrag unter HKLM\Software\Microsoft\Windows\Current Version\Uninstall\[ProductCode]. Dort sollte es einen Eintrag InstallLocation geben.

Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 30 November 2007 - 16:18

QUOTE (Stefan Krueger @ 2007-11-30 16:01)
Schau mal im Uninstall-Eintrag unter HKLM\Software\Microsoft\Windows\Current Version\Uninstall\[ProductCode]. Dort sollte es einen Eintrag InstallLocation geben.

InstallLocation ist bei mir leer.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 November 2007 - 18:48

Pech. Dann solltest du wenigstens in Zukunft das Property ARPINSTALLLOCATIONsetzen.

Sanchooo187

Sanchooo187
  • Full Members
  • 19 posts

Posted 03 December 2007 - 13:54

QUOTE (Stefan Krueger @ 2007-11-30 18:48)
Pech. Dann solltest du wenigstens in Zukunft das Property ARPINSTALLLOCATIONsetzen.

Ich dachte sowas ist in einem Basic-MSI-Projekt Defaultmäßig eingestellt.
Dem ist aber nicht so.

Ich bedanke mich vielmals für die Antworten.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 07 December 2007 - 18:42

Neuere InstallShield-Versionen enthalten dafür die Custom Action SetARPINSTALLLOCATION (du musst "show all custom actions" aktivieren um sie zu sehen). Ich vermute, dein Projekt wurde ursprünglich mit einer älteren InstallShield-Version erstellt?