すべての user で扱う file の配置場所 の続き
"%PROGRAMDATA%" を使うべきだけどどうやって配置するの? と疑問に思った方へ。当然 installer 使うことになるわけですが、その指定方法にちと癖があります。
Visual Studio 2008 の Setup Project では任意の folder 配下に file を配置することができるようになっていますが、あらかじめ用意されている選択肢に "%PROGRAMDATA%" を示すものがありません。
しょうがないので、「カスタム フォルダ」を選択することになります。
[DefaultLocation] が対象の folder の path を示すものになります。これを "%PROGRAMDATA%" を示すものに変更してやればいいわけですが、"C:\ProgramData" のように固定で埋め込んだり、環境変数を利用する方法では customize されていたらそれで終わりです。
ということで drop down list で表示されませんが、Windows Installer で用意された方法を利用します。あらかじめ用意された変数は System Folder Properties にて確認できます。
今回利用するのは "%PROGRAMDATA%" ですので対応するのは "CommonAppDataFolder" になります。その配下には ”Manufacturer”, "ProductName" とするのが流儀ですので、[DefaultLocation] へ下記のように設定します。
[CommonAppDataFolder][Manufacturer]\[ProductName]
上記ではわかりやすくするためにほかの properties もいじっています。
これで、Setup Project に folder が追加されましたので、他の resources と同様適宜追加してください。
<参考>