- PR -

VS2005クラスライブラリでのapp.config編集について

1
投稿者投稿内容
コージ
会議室デビュー日: 2006/10/09
投稿数: 2
投稿日時: 2006-10-09 13:59
VS.NET2005+VBで開発をしています。

クラスライブラリのプロジェクトを作成して、データセットファイルを追加し、
TableAdapter構成ウィザードからTableAdapterを作成しました。ウィザードの中で
MySettiongsにDBへの接続情報を保存しています。
(ここで設定した値はapp.configに保存されていると思ってるんですが、、、)
このDLLをWebサイトのプロジェクトで読み込み、利用しようとしています。


Webサイトのプロジェクト内からライブラリ内のapp.configに保存された
DBへの接続情報を変更したいのですが、うまくできません。
Webサイトの発行をすると、ライブラリのapp.configが含まれないため、
Web.configに記述を追加してみましたが、動作しません。

どうすればWebサイトのプロジェクトから、DLL内のapp.configの内容を
変更できますか?


自分なりに調べてみたんですが、ライブラリの「MyProject>Settings.settings」に
app.configに記述した値が追加されていて、さらにその値が「Settings.Designer.vb」
ファイルにハードコーディングされているようです。
これではapp.configの値だけを変えても意味がなさそうで、実際にapp.configの値だけ
変更してMySettingsの値を更新しないと、プログラムを実行した時には変更前の
MySettingsの値が使われてしまいました。

これではプログラムにハードコーディングしているのと変わりはないので、何か方法が
あるような気がするのですが、よくわかりません。教えて下さい。






よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2006-10-09 17:05
クラスライブラリでは、設定ファイルはクラスライブラリのものとして用意しても読み込んでくれません。アプリケーションの設定ファイルにすべて記述します。(Webアプリなら、Web.configファイルに、クラスライブラリの設定も記述します。)

引用:
さらにその値が「Settings.Designer.vb」
ファイルにハードコーディングされているようです。



ハードコーディングされているのは、デフォルト値です。デフォルト値は、設定ファイルに設定が記述されていなかった場合に使用されます。

引用:
Web.configに記述を追加してみましたが、動作しません。


動作しませんとはどういう意味ですか?(実行時に例外が発生するのか、コンパイルが通らないのか、それともただ単にデフォルト値が使われてしまうのか。)

おそらく、App.configの内容を、Web.configに正しく移せていない気がします。
configSectionsセクションも忘れずコピペしていますか?
コージ
会議室デビュー日: 2006/10/09
投稿数: 2
投稿日時: 2006-10-09 19:17
けんじさん、ありがとうございます。
動作しました。

ご推測の通り、configSectionを移していませんでした。
(症状はデフォルト値が使われている状態でした。)

きちんとconfigSectionから移したところ、Web.configで指定した
値で上書きできました。

ありがとうございます!
1

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