QA@IT

dll内の処理からapp.configの取得

5771 PV

Visual Studio 2012 Professionalで開発しています。
app.configの値が取得できていない状態です。

1.VB.NETでクラスを作成。(DBに登録する処理など)
2.VBAにて、1で作成したクラス(dll)を呼び出す。
3.dll内でDB接続文字列が取得できていない。

DB接続文字列はapp.configに記載してあり、
System.Configuration.ConfigurationManager.AppSettings("文字列")
で取得しています。
VBAからではなく、VB.NETからdllを呼び出した場合は、正常に取得できています。

VBAからdll化したものを参照する際のファイル配置場所が正しくないのでしょうか。
その場合、app.configはどこから読み込まれているか確認する方法はあるのでしょうか。

よろしくお願い致します。

回答

できるかどうかは怪しいですが、とりあえず、
AppDomain.CurrentDomain.GetData("APP_CONFIG_FILE");
で何か値がとれるか見てみてください。
何か入っていれば、それが構成ファイルのパスです。
また、SetDataでパスを設定することで、任意のパスから読み込める場合があります。
ただし、この設定の変更は、構成ファイルが最初にロードされる前に行う必要がありますし、AppDomain全体でグローバルな情報ですので、下手にいじるとぶっ飛びます。

編集 履歴 (0)

構成ファイルを使用してアプリを構成する方法

上記のページの「アプリケーション構成ファイル」のセクションを見ると、.configを使えるのは、以下のいずれかによってホストされる場合です。

  • 実行可能ファイルによってホストされるアプリケーション。
  • ASP.NET によってホストされるアプリケーション。
  • Internet Explorer によってホストされるアプリケーション。

VBAでホストされる場合については記述がないので、使えないと思います。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。