- PR -

インストール時に外部ファイルを参照

1
投稿者投稿内容
taro
ベテラン
会議室デビュー日: 2003/08/06
投稿数: 55
投稿日時: 2006-09-07 09:51
C#.NET2003で開発をしているものですが
自分で作成したSetUp.exeでインストール先のパスを外部ファイル(xmlファイル)から
取得する方法を探しております。
おそらく通常はデフォルト値(C:\Program Files\(exeファイル名)\などになるとおもわれますが・・・

どなたかご存知の方がいらっしゃいましたら、ご教授お願いします。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-09-07 12:26
引用:

taroさんの書き込み (2006-09-07 09:51) より:
C#.NET2003で開発をしているものですが
自分で作成したSetUp.exeでインストール先のパスを外部ファイル(xmlファイル)から
取得する方法を探しております。
おそらく通常はデフォルト値(C:Program Files(exeファイル名)などになるとおもわれますが・・・




おそらく、セットアッププロジェクトだと思いますので、それを前提に話をします。
もし、違うもの(極端なものでいえば、自分でコーディングした 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まで
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2006-09-07 17:27
別件でネット検索していたときに、こんなのを見付けました。

レジストリから取得した値を Visual Studio .NET の
セットアップ プロジェクトで使用する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;827026

# 外部ファイルから・・・という訳ではないですが、ご参考までに
taro
ベテラン
会議室デビュー日: 2003/08/06
投稿数: 55
投稿日時: 2006-09-08 10:04
ご返答ありがとうございました

バッチファイルを作成し、そこにTARGETDIRでインストール先を指定するようにしました。

とっちゃん様、梶様 ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)