WIX Toolset(3.10.3)を使用してインストールパッケージをビルドするプロジェクトを継承しました。アプリケーションは、共有データをダウンロードして、c:\ProgramData\Vendor\ApplicationName
に格納します。ただし、このパスはインストール中に作成されるのではなく、初めてパスが要求されるたびにアプリケーション自体の実行中に作成されます。ProgramDataの既存のフォルダとファイルに対するアクセス許可をWiX Toolsetで設定する
複数のWindowsユーザーがアプリケーションを使用するときに発生するアクセス許可に関連する問題を発見しました。アプリケーションがバックエンドから新しいデータファイルをダウンロードするたびに、それらのファイルに対して「フルコントロール」権限を取得するのは現在のWindowsユーザーです。他の誰かが別のWindowsアカウントでログインすると、それらのファイルに対する読み取り権限しか持ちません。また、アプリケーションがローカルファイルをバックエンドと同期させようとすると、これらの混在したアクセス許可によって問題が発生します。
アプリケーションに昇格した権限が必要ないため、インストール中にこれを修正する必要があります。最初のステップとして、インストール時にc:\ProgramData\Vendor\
フォルダが作成され、<util:PermissionEx User="Everyone" GenericAll="yes" />
で正しいアクセス権が取得されていることを確認しました。これらのアクセス許可は継承されるため、新規インストールを行うすべてのユーザーの問題を解決します。
問題は、インストールされたの後に作成されたのフォルダ/ファイルによってのみアクセス許可が継承されることです。つまり、以前のバージョンからアップグレードしたユーザーのデータファイルには、混在した権限が残っています。したがって、既存のすべてのフォルダとファイルがインストール時に新しい権限を取得するようにする必要があります。これをどのように達成するのですか?