必要に迫られて、インストーラーでProgram Files以外のフォルダをデフォルトにする方法を調べてみました。
デフォルトにしたいフォルダは、<システムドライブ>\[プロダクト名]の形式です。
例)C:\Radiance
ちなみに開発環境はVisual Studio 2010、Windows7(64bit)です。
ごく普通にインストーラーを作ると、DefaultLocationの項目に
[ProgramFilesFolder][Manufacturer]\[ProductName]
が指定されています。
これでインストーラーを作ると、デフォルトで表示されるフォルダ名は
C:\Program Files\[会社名]\[プロダクト名]
のようなパスになります。
![](https://i0.wp.com/2.bp.blogspot.com/-T4-1pYj0CC8/T5i0L1V2VnI/AAAAAAAABjU/75F0m8xb-i4/s320/2012-04-26_1131_ProgramsFiles.png?w=700&ssl=1)
今回は、いきなりドライブの直下のフォルダをデフォルトにする必要があります。
で、試しに[ProductName]だけ残して、ビルドしてみました。
ビルドはできたので、実行してみると、
![](https://i0.wp.com/2.bp.blogspot.com/-KVKoGH-9uH8/T5i2bxHNSZI/AAAAAAAABjg/7tC0exbu4Lk/s320/2012-04-26_1142_%E3%82%A8%E3%83%A9%E3%83%BC.png?w=700&ssl=1)
やっぱり怒られた。
ドライブ名がないので、ネットワーク上の何かと勘違いされているようです。
そうだよねー。フォルダ名に相当するとこだけ残しても、うまくいかないよな。
浅薄な考えはすてて、ググってみること数分。同じようなことを考えている人は、やはりいるようで以下の指定ができることがわかりました。
[WindowsVolume]\[ProductName]
↑これでWindowsのボリュームが指定できる
![](https://i0.wp.com/4.bp.blogspot.com/-3ci00gfZf-8/T5i0LL9tOHI/AAAAAAAABjQ/lSR3wdGoquQ/s320/2012-04-26_1129_WindowsVolume.png?w=700&ssl=1)
もっかいビルドし直して実行すると。
![](https://i0.wp.com/1.bp.blogspot.com/-2Q50GkONf_o/T5i4Yyo5JTI/AAAAAAAABjo/ou3RsphlGOM/s320/2012-04-26_1150_%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E7%9B%B4%E4%B8%8B.png?w=700&ssl=1)
今度はうまくいった。
ピンバック: インストーラーで環境変数を設定する(その1) – ヤスダ式仕事ブログ