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

Major Update


1 reply to this topic

pylon

pylon
  • Members
  • 26 posts

Posted 25 November 2003 - 14:22

Hallo!
Ich habe für ein Update ein Automatic Upgrade Item erstellt.
Von InstallShield wurde dann ein MajorUpdate erzeugt.
Nur leider bekommt dann der Benutzer die Dialoge der Erstinstallation incl. der Auswahl des Installationspfades zu sehen. Für meine Installation muss aber sichergestellt werden, das kein anderer Pfad (auch nicht der vordefinierte) als der der alten Version verwendet wird.
Nun habe ich aus der Registrierung den alten Pfad ausgelesen und wollte damit den vordefinierten Installationspfad überschreiben. Das funktioniert soweit auch ganz gut, aber trotzdem wird beim Kopieren in beide Verzeichnisse geschrieben. ohmy.gif
Im Dialog CustomSetup wird auch immernoch der vordefinierte Pfad angezeigt, obwohl er ja vorher überschrieben wurde.

Was muss ich tun, damit das Update fehlerfrei in den alten Pfad kopiert wird?

Gruß
Chris.

CODE

function UpdateDir(hMSI)  
   STRING szUpdate, svUpdate;
   STRING szSubKey, szInstallLocation, svInstallLocationValue;  
   NUMBER nvType, nResult, uiStat, nvSize;
begin            

uiStat = MsiGetProperty (hMSI, "ISUPDATE", svUpdate, nvSize);  

if (svUpdate = "ja") then

 nvType = REGDB_STRING;
 RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
 szSubKey = UNINSTALL_KEY ^ "{D633C1B1-0A7A-4507-8A17-F537F02C067A}";
 szInstallLocation = "InstallLocation";
 nResult = RegDBGetKeyValueEx (szSubKey, szInstallLocation, nvType, svInstallLocationValue, nvSize);
 if (nResult < 0) then  
  abort;
 endif;  

endif;

uiStat = MsiSetProperty (hMSI, "INSTALLDIR", svInstallLocationValue);
uiStat = MsiSetProperty (hMSI, "TARGETDIR", svInstallLocationValue);

end;



Martin Aigner

Martin Aigner
  • Full Members
  • 133 posts

Posted 01 December 2003 - 16:54

Hallo,

eine Pfad-Variable wir mit dem MSI-Befehle MsiSetTargetPath (und nicht mit MsiSetProperty) beschrieben.

Im Übrigen sollte TARGETDIR nicht verändert werden, da dies für eine administrative Installation benötigt wird.

Zusätzlich ist zu beachten, dass alle Zielpfade in der Directory-Tabelle von INSTALLDIR direkt oder indirekt abgeleitet sein müssen.
SD-Technologies GmbH
Macrovision Certified Training Partner.
More infomation at www.sd-technologies.de