Die folgende Verzeichniseinstellung funktioniert perfekt für mich.Wie installiere ich in den Ordner LocalAppData?
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id="ProgramFilesFolder">
<Directory Id='INSTALLDIR' Name='MyApp'/>
</Directory>
</Directory>
Allerdings, wenn ich versuchte, zu ändern "Program" auf "LocalAppDataFolder", ich habe viele Fehler, wenn light
mit meinem msi zu verbinden und erzeugen:
D:\runGroup.wxs(53) : error LGHT0204: ICE38: Component cmpA5561BE36D80EB58252E69DDA0C2FF8C installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. D:\main.wxs(38) : error LGHT0204 : ICE64: The directory INSTALLDIR is in the user profile but is not listed in the Remove File table.
Sieht aus wie " LocalAppDataFolder "ist für WiX nicht akzeptabel, während ich glaube, dass es eine der Systemordnereigenschaften ist, die in here definiert ist.
Was soll ich für den Ordner LocalAppData verwenden?
Mein Tipp: Installieren Sie nicht in irgendeinem Benutzerprofil-Ordner. Installieren Sie auf [ProgramFilesFolder] und lassen Sie das Betriebssystem umleiten. Jedes Betriebssystem könnte dies anders machen und Ihre "unter der Haube" Fixes werden zweifellos fehlschlagen. Wenn der Ordner nicht vom Betriebssystem umgeleitet wird, sollte die MSI-Referenzzählung in der Lage sein, mehrere Installationen für verschiedene Benutzer im selben Ordner vorzunehmen. Stellen Sie nur sicher, dass Sie keine Lese-/Schreibdateien haben, die Sie im Ordner ändern. Ihr Installationsordner sollte nur gelesen werden. Kämpfe nicht gegen Windows 'Idiosyncrazies - es beißt mit Rache zurück. –
Das Problem hier ist, ich weiß nicht, wie [ProgramFilesFolder] auf den Ort umleiten, der für die Installation pro Benutzer sein sollte. Deshalb musste ich einen Workaround finden. – Deqing
Ja, und du solltest es überhaupt nicht umleiten :-). Windows könnte Sie auf Vista, Windows 7, Windows 8 usw. auf verschiedene Arten weiterleiten ... Windows Installer ist gefährlich zu bekämpfen - es wehrt sich. Sie können die Installation auf [ProgramFilesFolder] auch für eine Installation pro Benutzer fortsetzen, und einige Windows-Versionen leiten sie möglicherweise automatisch um, andere installieren möglicherweise ProgrammeFilesFolder. Verwechseln Sie das nicht, lassen Sie es so laufen, wie Windows es vorschreibt. –