以下のディレクトリ設定は、私にとって完璧に機能します。LocalAppDataフォルダにはどのようにインストールしますか?
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id="ProgramFilesFolder">
<Directory Id='INSTALLDIR' Name='MyApp'/>
</Directory>
</Directory>
しかし、私は変化する "ProgramFilesFolderのを" しようとしたときにエラーの "LocalAppDataFolder"、私が得たたくさんの私のMSIをリンクして生成するlight
を使用して:
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.
がどのように見えます」私はそれがhereで定義されたシステムフォルダのプロパティの1つだと思っていますが、LocalAppDataFolderはWiXでは受け入れられません。
LocalAppDataフォルダには何を使用しますか?
私のアドバイス:userprofileフォルダにはまったくインストールしないでください。 [ProgramFilesFolder]にインストールし、オペレーティングシステムがリダイレクトを行うことを許可します。各OSはこれを別々に行うことができ、あなたの「フードフィックスの下で」あなたは間違いなく逆火するでしょう。フォルダがOSによってリダイレクトされない場合、MSI参照カウントは、同じフォルダに対する異なるユーザのいくつかのインストールを処理することができるはずです。フォルダ内で変更する読み取り/書き込みファイルがないことを確認してください。あなたのインストールフォルダは読み取り専用でなければなりません。 Windowsの独特のものと戦わないでください - それは復讐と噛み付きます。 –
ここでの問題は、[ProgramFilesFolder]をユーザー単位のインストールのためにリダイレクトする方法を知らないことです。だから私は回避策を見つけなければならなかった。 – Deqing
はい、リダイレクトしないでください:-)。 WindowsはVista、Windows 7、Windows 8などで別の方法であなたをリダイレクトする可能性があります.Windows Installerは戦うのは危険です。ユーザーごとのインストールでも[ProgramFilesFolder]にインストールできますが、Windowsのバージョンによっては自動的にリダイレクトされるものもあれば、ProgramFilesFolderにインストールされるものもあります。これを混乱させないでください。Windowsが指示するように動作させてください。 –