Discussion:
msiで環境変数の設定
(too old to reply)
unknown
2007-04-26 07:56:00 UTC
Permalink
msiファイルを作っているのですが、msiに含めて配布するファイルの中に、環境変数PATHを使ってdllファイルを探し出して動くexeファイルが含まれています。exeファイルはサードパーティー製で、別の方法を使ってdllファイルを探し出すようにexeファイルを変更することが出来ません。dllファイルはアプリケーションフォルダ\Libフォルダにおいて、インストール時に環境変数PATHの頭に「アプリケーションフォルダ\Lib;」を追加したいのですが、この仕組みをmsiに組み込むにはどうすればよいのでしょうか。

よろしくお願いします。
Takeshi SHIGIHARA
2007-04-29 04:55:28 UTC
Permalink
Post by unknown
インストール時に環境変数PATHの頭に「アプリケーションフォルダ\Lib;」を追加したい
もう3日ほど経ってしまっていますから既に解決方法を見つけて
しまわれたかも知れませんが、参考になればと思い、投稿します。

(1) とりあえず、環境変数とPathあたりがキーワードになるだろう。
そこでgoogleで "msi 環境変数 Path"を用いて調べてみる。すると
何件も見つかるので適当に読んでみる。
http://dobon.net/vb/dotnet/deployment/environmentpsth.html
など。

(2) OrcaというMSIデータベース編集ソフトが必要となると分かるの
で、それをmicrosoftからダウンロードする。残念ながらOrcaだけを
インストールするものは用意されていないので、Platform SDKをダ
ウンロードするほかは無いようだ。
http://support.microsoft.com/kb/255905/ja
# 上のuriはちょっと古い情報です。いまはWindows Vista SDKになっ
ていますが、ちょと巨大。
http://www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en

(3) SDKがインストールされたディレクトリの中を探してみると
Orca.msi というファイルが見つかるので、それをインストールする。

(4) 実験してみる。
適当にセットアッププロジェクトを作り、msiファイルを作成する。
その後、(1)のuriを参考にしつつ、msiをOrcaで内容を編集する。
今回はPATHの先頭に値を追加したいので、Valueの部分を
[TARGETDIR]Lib;[~]
とする。
なお、適当なGUIDの部分は、 guidgen.exe で作成させた。
編集されたmsiを実行したのち、システムのプロパティから環境変数
の内容を確認する。今回はユーザ環境変数を編集してみた。
(Nameの部分を =-Path とした)
ここで環境変数Pathに間違いなく自分の設定した値が追加されてい
ると分かった。
もう一度Setup.exeを起動し、削除を選ぶと、環境変数から自分の設
定した値が抹消されていることを確認した。
--
----- Takeshi SHIGIHARA
***@tka.att.ne.jp -----
ブタも投げれば空を飛ぶ--RFC1925.
Loading...