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

MajorUpgrade fehlende Registry (HKCU) Einträge


Best Answer Florian Haupt , 02 April 2015 - 10:20

Nach weiterer Untersuchung hat sich die Frage geklärt. Die Registry Einträge würden nur unter HKCU geschrieben wenn das Setup auch von einem Benutzer durchgeführt wird, wie im oben beschriebenen 1. Fall. Damit die Einträge im 2. Fall installiert würden, müsste eine Prüfung z. B. durch einen "advertised shortcut", ausgelöst werden - unsere Component hat dafür allerdings keinen entsprechenden Auslöser, da dort nur Registy Keys drin stehen (Bei früheren Setups hatten wir einen entsprechenden Shortcut, durch Strukturänderung ist dies so nicht mehr möglich).

Lösbar soll ein solcher Fall sein, indem man die Komponente in ein eigenes Feature packt, welches als "Parent Feature" für die anderen dient. So stand es hier: http://www.ewall.org...si/self-healing

Wir werden hier wohl einen anderen Weg gehen und auf die HKCU Einträge verzichten.

Gruß
Florian

Go to the full post


1 reply to this topic

Florian Haupt

Florian Haupt
  • Full Members
  • 11 posts

Posted 02 April 2015 - 08:24

Hallo,

 

ich habe derzeit ein Problem mit einem Upgrade, bei dem ich einfach nicht weiterkomme. Für eine neue Version haben wir ein MajorUpgrade erstellt, bisher eine Sache die auch Problemlos funktioniert hat. Im aktuellen Fall schreiben wir auch Werte unter HKCU, in einen neuen Registry Key. Die Registry Werte für HKCU stehen in einer neuen Komponente die es in der vorherigen Version nicht gab und in welcher nur diese Registry Werte enthalten sind.

Bei der Installation als Upgrade kommt es nun zu zwei verschiedenen Ergebnissen.

Der 1. Fall:

Die Installation erfolgt per Kommandozeile (mit Parameter für die Logdatei) durch einen angemeldeten Administrator - in diesem Fall werden die Registry Werte unter HKCU geschrieben. (Silent mode wurde auch ausprobiert)

Der 2. Fall:

Die Installation erfolgt über einen Dienst im System Context - In diesem Fall werden die Registry Werte nicht geschrieben.

 

Ich habe daraufhin die Log-Dateien angesehen, welche in beiden Fällen mit Erfolg ("Installation completed successfully") endeten. Im zweiten Fall folgt hierauf noch ein Block mit mehreren "Post-install cleanup" Meldungen, was schon einmal ein erster Unterschied ist den ich mir nicht erklären kann.
Ein weiterer Unterschied liegt in der Ablauffolge beim schreiben der Registry Keys.
Im 1. Fall:
MSI (s) (90:C4) [10:59:07:974]: Executing op: RegOpenKey(Root=-2147483647,Key=Software\Pisoftware\Abacus\Manufacturer\Abacus IEEE\Settings,,BinaryType=0)
MSI (s) (90:C4) [10:59:07:974]: Executing op: RegAddValue(Name=ClearBCGSettings,Value=#1,)
WriteRegistryValues: Key: \Software\Pisoftware\Abacus\Manufacturer\Abacus IEEE\Settings, Name: ClearBCGSettings, Value: #1

 

Im 2. Fall:

MSI (s) (E4:3C) [11:07:14:046]: Executing op: RegOpenKey(Root=-2147483647,Key=Software\Pisoftware\Abacus\Manufacturer\Abacus IEEE\Settings,,BinaryType=0)
MSI (s) (E4:3C) [11:07:14:046]: Executing op: RegAddValue(Name=ClearBCGSettings,Value=#1,)

 

Die Meldung "WriteRegistryValues" erfolgt im 2. Fall also nicht, was dazu passt, dass diese Werte in der Registry nicht zu finden sind.

Für Hinweise, warum hier ein unterschiedliches Verhalten vorliegt und/oder wie man dies verhindern kann, wäre ich Dankbar.

Gruß
Florian



Florian Haupt

Florian Haupt
  • Full Members
  • 11 posts

Posted 02 April 2015 - 10:20   Best Answer

Nach weiterer Untersuchung hat sich die Frage geklärt. Die Registry Einträge würden nur unter HKCU geschrieben wenn das Setup auch von einem Benutzer durchgeführt wird, wie im oben beschriebenen 1. Fall. Damit die Einträge im 2. Fall installiert würden, müsste eine Prüfung z. B. durch einen "advertised shortcut", ausgelöst werden - unsere Component hat dafür allerdings keinen entsprechenden Auslöser, da dort nur Registy Keys drin stehen (Bei früheren Setups hatten wir einen entsprechenden Shortcut, durch Strukturänderung ist dies so nicht mehr möglich).

Lösbar soll ein solcher Fall sein, indem man die Komponente in ein eigenes Feature packt, welches als "Parent Feature" für die anderen dient. So stand es hier: http://www.ewall.org...si/self-healing

Wir werden hier wohl einen anderen Weg gehen und auf die HKCU Einträge verzichten.

Gruß
Florian