- PR -

VB.NET2005セットアッププロジェクトについて

1
投稿者投稿内容
ぶち
常連さん
会議室デビュー日: 2006/02/15
投稿数: 29
投稿日時: 2006-11-17 16:58
こんにちは

VB.NET2005でセットアッププロジェクトを作成しようと思っています。
(Windowsアプリケーションです)

そこで、DBへの接続条件を設定ファイルに記述しているのですが、
それをインストール時にユーザ入力させてその値で設定ファイルを
作成したいのですが方法がわかりません。

過去ログを検索したところ同じようなケースがあったのですが
回答例のリンクが古くて結局回答はわかりませんでした。。。

基本的なことで申し訳ありませんがよろしくお願いします。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-11-17 18:20
とっちゃんです。

カスタム動作で作成できると思います。
ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_deploy/html/9cdbedb0-d359-4194-adb1-44713d053b71.htm (ローカルなMSDNライブラリのリンクです)

いろいろなカスタム動作の作成方法が乗ってますので、一通りやってみるとよいと思いますよ。
ぶち
常連さん
会議室デビュー日: 2006/02/15
投稿数: 29
投稿日時: 2006-11-17 18:56
とっちゃんさん、返信ありがとうございます。

ご教示どおり、カスタム動作の作成をおこなってみました。
実際やってみると動作が少しわかりました。

処理イメージはカスタム動作内でconfigファイルを書き換えるという
感じなんでしょうか?

configファイルを作成する前にユーザの入力情報で書き換えるというのは不可能
なんでしょうか?

何度も申し訳ありませんがよろしくお願いします。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-11-20 13:29
引用:

ぶちさんの書き込み (2006-11-17 18:56) より:
処理イメージはカスタム動作内でconfigファイルを書き換えるという
感じなんでしょうか?


です。
動きとしては、インストール後に、こっそりと設定を変える形になります。

引用:

configファイルを作成する前にユーザの入力情報で書き換えるというのは不可能
なんでしょうか?


残念ながらできません。

圧縮ファイルの形式上、その中身を部分的に変更するというのは至難の業(実際は、圧縮を一時的に解いて、変更後に再圧縮する以外の方法はない)ですし、圧縮していない場合でも、ハッシュ値を抱えていますので、やはり変更することはできません。

#独自のインストーラエンジンを作ると仮定したとしても、相当厳しいハードルが待ち構えていると思います(^^;

INIファイル形式(.configはXMLファイル形式です)であれば、インストーラ内に設定情報を持つことで、動的生成も行えますが、現在のWindowsInstallerのエンジンにはそのような仕組みがありませんので、どうにもならない(おそらく今後搭載してくるという可能性もほとんどないと思います)部分になります。
ぶち
常連さん
会議室デビュー日: 2006/02/15
投稿数: 29
投稿日時: 2006-11-20 14:38
とっちゃんさん、何度もありがとうございます。

XMLのファイル操作に少し苦労しましたがなんとか書き換えを
行うことができました!

インストール時に初期値を自動で設定したいというのは一般的なような気もしますが、
自動ではできないんですね〜
ちょっとびっくりしました。。。

何がともあれXMLの勉強にもなったし、希望通りに処理することができたのでよかったです。

本当にありがとうございました!
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-11-20 16:56
引用:

ぶちさんの書き込み (2006-11-20 14:38) より:
インストール時に初期値を自動で設定したいというのは一般的なような気もしますが、
自動ではできないんですね〜
ちょっとびっくりしました。。。



.config は XML ファイルとしては非常に特殊なファイルの部類になるので、インストーラエンジン側でのサポートは今後も期待できないと思います。

まぁ、XML 全体に言えることですが、フォーマットがあってないようなものなのでw

また、XMLの変更は、システムの設定とは別(OS自身、XMLに依存したものは持ってませんからw)なので、そういう点では入ってくる余地があるとしても、ずっと先(きっと今のWindowsOSとはそのアーキテクチャを異にするものになる時代)だと思います。

新しいインストーラエンジンが登場してくれば状況も変わるかもしれませんけどねw
1

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