2016-07-12 9 views
0

Ich habe ein WIX-Setup, mit dem der Benutzer den Installationsort auswählen kann. Bei der Deinstallation muss ich eine benutzerdefinierte Aktion ausführen, die eine Datei am Installationsort aktivieren soll. Ich habe versucht, den Installationsort von session["INSTALLDIR"] zu bekommen, aber es ergibt sich der Standardpfad und nicht der vom Benutzer angegebene.Wix Installationsort

Wie kann ich diesen Standort erreichen?

Antwort

0

Ich habe dies getan, in meinem eigenen Installer - folgend arbeiten.

Dadurch wird eine Eigenschaft zum Abrufen des Installationsspeicherorts aus der Registrierung hinzugefügt.

<Property Id="INSTALLDIR"> 
    <RegistrySearch Id='Registry' Type='raw' Root='HKCU' Key='Software\$(var.Manufacturer)\$(var.ProductName)' Name='Location' /> 
</Property> 

Dies legt den Installationsort in der Registrierung fest.

<Component Id="Registry" Guid="*"> 
    <RegistryKey Root="HKCU" Key="Software\$(var.Manufacturer)\$(var.ProductName)"> 
     <RegistryValue Name="Location" 
         Type="string" 
         Value="[INSTALLDIR]" 
         Action="write" 
         KeyPath="yes" /> 
    </RegistryKey> 
    <util:RemoveFolderEx On="uninstall" Property="INSTALLDIR" /> 

1

Wenn Sie INSTALLDIR für einen späteren Zeitpunkt, z. B. für die Deinstallation, verwenden möchten, sollten Sie das im unten stehenden Link beschriebene Remember-Eigenschaftsmuster verwenden.

"Das Grundproblem ist, dass der Windows Installer keine Eigenschaftswerte für Sie speichert. Das heißt, wenn der Benutzer Werte in der Installationsoberfläche eingibt oder sie in der Befehlszeile übergibt, sind diese Werte bei der Reparatur nicht vorhanden , upgraden oder deinstallieren. "

http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern/

+0

ich hinzugefügt, um den Registrierungswert, aber ich kann es nicht schaffen es richtig zu füllen. Wie setze ich das Installationsverzeichnis in die Eigenschaft? – Lipo