2011-11-15 7 views
1

私はC#クラスライブラリ(dll; .net 4.0)を持っています。私はそれを "mytestlib"と呼ぶでしょう。 Settings.settingを追加してapp.configファイルをプロジェクトに追加しました。それには、いくつかのアプリケーションスコーププロパティといくつかのユーザースコーププロパティがあります。どこにapp.dll.configがありますか

デバッグ中に、私が期待しているbin \ Debugフォルダに "mytestlib.dll.config"ファイルがあります。しかし、MSIインストーラを使ってライブラリをインストールすると、システム上のどこにでも "mytestlib.dll.config"が見つかりません! Microsoftはどこにapp.dll.configを置くのですか?私はそれが実際にはdllに埋め込まれている疑いがあり始めている(私はそうでないことを望む)。

このdllを使用するexeアプリケーションが「mytestlib.dll.config」ファイルから設定を正常に取得するため、どこかにあることはわかります。問題はファイルがどこにあるのかわかりません。

btw、私はuser.configを見つけることができます。

予めご了承ください。

注:私はWindows Formアプリケーション(exe)でこれと同じことを行い、MSIインストーラを使用してインストールすることができます。app.exe.configが.exeと並んでいると思います。 app.dll.configが同じように機能しないのはなぜですか?物事の

+3

実際の設定ファイルは、.dllではなく.exeに関連付けられています。 DLLには独自の.configファイルがありません。コンパイラが参照用に.dll.configを生成している可能性があります(dllでそれを試したことはありません)が、適切なセクションは.exeのapp.configにコピーする必要があります。 –

+0

インストーラに付属する必要があります。 –

+0

MSIはDLLをどこにインストールしますか? –

答えて

0

ドキュメントによると、クラスライブラリの構成ファイルモデルはありません。 libararyで定義されたapp/user設定は、実際にライブラリを参照しているexeのapp/user.configを使用します。したがって、app.dll.configはありません(設定はdllを参照するappのapp.exe.configにあります)。

2

カップル:

1 - あなたが打ち上げ* .exe.configに関連する設定項目を置くことを検討置く必要があります。これらは、DLLによって適宜選択されます。

2 - インストーラーは、あなたが特にと言っていない限り、conifgファイルについては知らないでしょう。

3 - DLL設定ファイルは、テストプロジェクトやその他のシナリオで使用するために作成されたもので、実行時には必要ありませんが、必要に応じて実行時に使用できます。

+0

私たちのDLLを使用しているexeは、他の人が所有している問題です。 – cchampion

+0

@cchampionあなたは所有していることを明確にすることはできますか? configファイルにエントリを追加するのがなぜ妨げられますか? –

+0

私はそれが別のコンパニオンアプリケーションであり、ソースコードへのアクセス権がないことを意味します。 – cchampion

関連する問題