- PR -

app.config

1
投稿者投稿内容
ガーリック
常連さん
会議室デビュー日: 2005/05/24
投稿数: 22
投稿日時: 2006-08-24 15:23
VB.NET 2003
.NET Framework 1.1 で開発しております。

DB接続文字列などは、app.config から取得するようにしていましたが、
プロジェクトが増えてしまい、app.config のバージョン管理に問題が
出てしまいそうです。(間違いなく出るでしょう。。。)

Project1
|−app.confg
|−Form1

Project2
|−app.confg
|−Form1

 :

 :

Project99
|−app.confg
|−Form1

もとのプロジェクト構築がまずいといえば、それまでなんですが、
どうにかして、各プロジェクト(EXE)から、1つの構成ファイル(config)を参照
する方法がないかと調べいますが、まだ回答が出ておりません。

この会議室の以前のスレッドに、ラッパクラスを作成する方法が記載されていましたが
それが理解できておりません。

初歩的な質問で申し訳ありませんが、どなたかご教授いただけたらと思います。

よろしくお願いいたします。
THREE-ONE
常連さん
会議室デビュー日: 2006/08/17
投稿数: 36
投稿日時: 2006-08-24 16:12
こんにちは

唯一のapp.configの情報を格納するクラスを共通プロジェクトに作り、各プロジェクトは
共通プロジェクトを参照する。
app.configの情報が欲しいときは、クラスを通じて取得するということでしょう。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-08-24 16:44
app.config から他の config を参照するように書いておくとか
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=7&topic=19665

#もしアプリケーションごとの設定ではなくマシンごとの設定だとすれば
#machine.config に書いてみるとか。。。

こっちのほうがいいか
http://msdn2.microsoft.com/ja-jp/library/ms228154.aspx

[ メッセージ編集済み 編集者: かるあ 編集日時 2006-08-24 16:56 ]
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-08-24 19:42
1.プロジェクトでリンク共有
App.configが全プロジェクトで同一なのであれば、
リンク項目として追加する(実態ファイルはひとつ)。
この場合、ビルド時点でファイルは複製される。

2.AppSettingsなどであれば外部ファイルから読む
かるあさんが挙げているやり方。
この場合、実行時も外部ファイルは同一。
※machi.configでやるのはあまりお勧めできないと思いますが。

3.構成ファイルを無理やり切り替え
アプリケーション実行開始時一番最初(できるだけ早く)に、
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", コンフィグファイルパス);
を実行。
ただしタイミングの問題などもあるので、あまりお勧めはできないかも。
ガーリック
常連さん
会議室デビュー日: 2005/05/24
投稿数: 22
投稿日時: 2006-08-25 19:09
THREE-ONEさん,かるあさん,なちゃさん

 回答ありがとうございます。

かるあさんからご指摘のあった、リンクサイトを見ておりますが、
今のところ理解できておりません。

また、なちゃさんよりご指摘のあった、
>1.プロジェクトでリンク共有
>App.configが全プロジェクトで同一なのであれば、
>リンク項目として追加する(実態ファイルはひとつ)。

ですが、リンク項目として追加するとあります。
VS.NET2003 で試しているのですが、ソリューション、プロジェクトとも
できません。
実際、どこでできるのでしょうか?

初歩的な質問で申し訳ありませんが、よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-25 22:11
リンク ファイル 追加

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ガーリック
常連さん
会議室デビュー日: 2005/05/24
投稿数: 22
投稿日時: 2006-09-29 14:29
じゃんぬねっとさん、回答ありがとうございました。
また、返事が遅くなり申し訳ありません。
(やっと社会復帰しました)

 じゃんぬさんの件、調べてみたのですが、VB.NET2003 では
 ありませんでした。
 R田中一郎さんのは、2005のようですが、その辺りの違いではないかと
 思っています。−>違いますかね?

もし、何かしらいい方法がありましたら、ご教授願います。

以上
1

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