- - PR -
インストール時に外部ファイルを参照
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-07 09:51
C#.NET2003で開発をしているものですが
自分で作成したSetUp.exeでインストール先のパスを外部ファイル(xmlファイル)から 取得する方法を探しております。 おそらく通常はデフォルト値(C:\Program Files\(exeファイル名)\などになるとおもわれますが・・・ どなたかご存知の方がいらっしゃいましたら、ご教授お願いします。 | ||||
|
投稿日時: 2006-09-07 12:26
おそらく、セットアッププロジェクトだと思いますので、それを前提に話をします。 もし、違うもの(極端なものでいえば、自分でコーディングした setup.exe もありえる)なら 該当しませんので、ご了承ください。 で、結論から。 おそらく想定しているであろうお手軽な手法を用いて解決する手段はありません。 セットアッププロジェクトの setup.exe から実行するのであれば、 setup.exe TARGETDIR=<インストールしたいデフォルトフォルダのフルパス> とすることで望みの動きにすることは出来ますが、この場合、ユーザーが 手入力するか、バッチファイルなどを用意するかということになります。 ちなみに、msi を直接実行する場合は msiexec /i <msiファイルのフルパス> TARGETDIR=<インストールしたいデフォルトフォルダのフルパス> となります。 もしかしたら、setup.ini に何かを記述しておくことで出来るということもあるかもしれませんが 残念ながらこの部分はアンドキュメントなため、わかりません。 まず、VSセットアッププロジェクトが標準で設定するインストール先ですが、 これは、セットアッププロジェクトのプロパティの Manifacturer と ProductName を組み合わせて設定しています。 具体的には、C:\\Program Files\\<Manifacturer>\\<ProductName> という形で設定されるように作られています。 実行時に変更するのではなく、規定の値を変えるだけでも良いのであれば、 ORCA を使って書き換えるか、上記2つのプロパティを都合の良いように変えるかとなるのですが、 後者の場合、インストーラのさまざまな箇所でも利用している値のため、おいそれと適当に 変えてしまうわけにはいかないという欠点があります。 どうしても、これらと値を変更してデフォルトを決めたいということであれば、 ORCA を使って、作成した msi の CustomAction テーブルにある DIRCA_TARGETDIR を任意の値に書き換えることになります。 また、実行時にどうしてもファイルから吸い上げられないとダメだということであれば、 CustomAction(VSセットアップの説明にあるカスタム動作とは全く違う代物です)を使って インストーラの起動時に設定するという方法もあります。 かなり面倒な作業となるため、さくっとかけないのですが、方法そのものはあります。ということで(^^; _________________ // とっちゃん(高萩 俊行)@わんくま同盟 // とっちゃん’Blog // MS-MVP for Developer Tools - Visual C++ // WindowsInstallerの話題はhttp://www.freeml.com/msiまで | ||||
|
投稿日時: 2006-09-07 17:27
別件でネット検索していたときに、こんなのを見付けました。
レジストリから取得した値を Visual Studio .NET の セットアップ プロジェクトで使用する方法 http://support.microsoft.com/default.aspx?scid=kb;ja;827026 # 外部ファイルから・・・という訳ではないですが、ご参考までに | ||||
|
投稿日時: 2006-09-08 10:04
ご返答ありがとうございました
バッチファイルを作成し、そこにTARGETDIRでインストール先を指定するようにしました。 とっちゃん様、梶様 ありがとうございました。 |
1