C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: インストールディレクトリを動的に変更したい


(過去ログ 32 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■15913 / inTopicNo.1)  インストールディレクトリを動的に変更したい
  
□投稿者/ taguchi (29回)-(2008/03/25(Tue) 15:30:14)

分類:[インストーラ全般] 

毎度お世話になっています。

環境:VS2005

ウィンドウズインストーラを使用して、
インストーラの作成を行っています。
そこで、インストールディレクトリを動的に変更させる
(ユーザ指定ではなくデフォルト値として)事は出来るのでしょうか?

例えば、あるレジストリに存在する値+固定文字列にインストールさせたい場合

あるレジストリ値:c:\program files\hoge\
固定文字列:install

インストールさせたいディレクトリ:c:\program files\hoge\install


また、ファイルシステムプロパティーのDefalutLocationにある[Manufacture]等の
値の解説のあるサイト等、VS2005版のインストーラサイトがありましたら
教えて頂けませんでしょうか?

#2003版ならちらほら存在するのですが、2005は見つける事が出来ませんでした。
#2003とは微妙に仕様が違うようなので困っています。
引用返信 編集キー/
■15915 / inTopicNo.2)  Re[1]: インストールディレクトリを動的に変更したい
□投稿者/ とっちゃん (259回)-(2008/03/25(Tue) 16:05:33)
とっちゃん さんの Web サイト
No15913 (taguchi さん) に返信
> 例えば、あるレジストリに存在する値+固定文字列にインストールさせたい場合
>
> あるレジストリ値:c:\program files\hoge\
> 固定文字列:install
>
> インストールさせたいディレクトリ:c:\program files\hoge\install
>
起動条件エディタをひらき
対象コンピュータの検索->レジストリ検索の追加
を選びます。
そこで、名前(何でもいいんでわかるような名前)
プロパティ名(全部大文字、これを実際に使います:今回は、BASEDIR と仮定)
レジストリキーや値など(実際の参照するところ)を設定します。

そのあと、ファイルシステムエディタにて
アプリケーションフォルダを選択し、プロパティの
DefaultLocation に
[BASEDIR]\Install と記述します。

これで、レジストリに書かれた値をもとにインストール先のデフォルトを
設定することができます。


> また、ファイルシステムプロパティーのDefalutLocationにある[Manufacture]等の
> 値の解説のあるサイト等、VS2005版のインストーラサイトがありましたら
> 教えて頂けませんでしょうか?
>
さしあたっては、MSDNライブラリですかね。
とはいえ、VS2003 と 2005 では2005側で若干(ごくごく少数)の拡張があった
程度で、2002, 2003, 2005, 2008 ともにほとんどというか全くというくらい
違いはありませんけど?

> #2003版ならちらほら存在するのですが、2005は見つける事が出来ませんでした。
> #2003とは微妙に仕様が違うようなので困っています。
参考にしたサイト(の具体的なURL)と、何がわからないのかを書いてくれれば
こたえられるとは思いますけど、
正式な資料がほしいということであれば、英語しかありません。

WIndowsInstaller 関係のまっとうな情報は英語しかないんで。


引用返信 編集キー/
■15920 / inTopicNo.3)  Re[2]: インストールディレクトリを動的に変更したい
□投稿者/ taguchi (31回)-(2008/03/25(Tue) 17:12:07)
とっちゃんさん
アドバイス有難う御座いました。

>起動条件エディタをひらき
>対象コンピュータの検索->レジストリ検索の追加
>を選びます。

中略
>そこで、名前(何でもいいんでわかるような名前)
>プロパティ名(全部大文字、これを実際に使います:今回は、BASEDIR と仮定)
>レジストリキーや値など(実際の参照するところ)を設定します。
>
>そのあと、ファイルシステムエディタにて
>アプリケーションフォルダを選択し、プロパティの
>DefaultLocation に
>[BASEDIR]\Install と記述します。

やり方がまずいのか、

ネットワーク上の場所(固定文字列)へアクセスできません。

怒られてしまいます。

どうやら、[BASEDIR]部分で指定したレジストリ値を取ってくれません。
Rootプロパティーに指示する部分はRegkeyに必要ないと思われるので、取って試してみたのですが、
空白(取って来れてない)になっています。
レジストパスがおかしいのかと、コピペを繰り返してはいるのですが駄目でした。

何か、アドバイスありましたら宜しくお願い致します。




引用返信 編集キー/
■15921 / inTopicNo.4)  Re[3]: インストールディレクトリを動的に変更したい
□投稿者/ taguchi (32回)-(2008/03/25(Tue) 17:14:16)
↑すいません。
中略をする所で間違って送信されてしまいましたので、
中略になっていません・・。
パスワードも入っていなかったので編集も効かず・・・。
申し訳ないです。

引用返信 編集キー/
■15922 / inTopicNo.5)  Re[4]: インストールディレクトリを動的に変更したい
□投稿者/ taguchi (33回)-(2008/03/25(Tue) 17:21:37)
度々すいません。

RegKeyとValuenの指定が間違っていました。
設定すると上手く行きました。
有難う御座いました。

図々しいようで恐縮ですが、もう一つ教えて頂けますでしょうか?

同じレジストリキーが存在するかどうかをチェックするには、
どうすればよいのでしょうか?
レジストリが存在しなければ、エラーで終了してしまうのは、
ユーザーインターフェイスとしては不完全です。
メッセージを出して終わらせたいと思っています。

Conditionへおなじように設定すれば良い所まではわかるのですが、
条件指定の文法がわかりません。

大変お手数ですが、宜しくお願い致します。
引用返信 編集キー/
■15924 / inTopicNo.6)  Re[5]: インストールディレクトリを動的に変更したい
□投稿者/ とっちゃん (260回)-(2008/03/25(Tue) 17:54:17)
とっちゃん さんの Web サイト
No15922 (taguchi さん) に返信

> Conditionへおなじように設定すれば良い所まではわかるのですが、
> 条件指定の文法がわかりません。
>
BASEDIRが取得できなかった場合ということですね。
であれば、起動条件エディタで起動条件を追加し、
Condition に
BASEDIR <> ""
Messageに
「取得できなかった場合に表示するメッセージ」
とすることで、実現できると思います。

起動条件の Condition(他も同様)は、その条件が成立したら実行するという条件を記載します。
あまり細かい条件(ディレクトリがあるかみたいなものなど)は判定できませんが
そこそこのレベルでなら判断できると思います。

具体的にどう書けばいいかわからない場合は
http://blogs.wankuma.com/tocchann/articles/22913.aspx

http://msdn2.microsoft.com/en-us/library/aa368012(VS.85).aspx
をご参照ください。
#手前はおいらの独自解釈の一部日本語化情報、うしろは、本家 WindowsInstaller のドキュメントです。

ちなみに、起動条件は、WindowsInstaller では、LaunchCondition というテーブルの情報になります。

引用返信 編集キー/
■15926 / inTopicNo.7)  Re[6]: インストールディレクトリを動的に変更したい
□投稿者/ taguchi (34回)-(2008/03/25(Tue) 18:09:11)
とっちゃん さん
詳細なアドバイスありがとうございます。

> BASEDIRが取得できなかった場合ということですね。
> であれば、起動条件エディタで起動条件を追加し、
> Condition に
> BASEDIR <> ""
> Messageに
> 「取得できなかった場合に表示するメッセージ」
> とすることで、実現できると思います。

なるほど。大変参考になります。有難う御座いました。
大体の文法はわかった気がしますので、
紹介いただいたサイトと比べて実践してみたいと思います。

有難う御座いました。
また、宜しくお願い致します。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -