2

私の推測では、この質問は「当然」のカテゴリに分類されると思いますが、それでも、私は混乱しています。

たとえば、Windows フォーム アプリケーションで構成ファイルを使用する場合、構成ファイルはC:\Program files\CompanyName\ProductName\Application.exe.configにあります。ただし、開発中のクラス ライブラリでは、Visual Studio から (別のプロジェクトと並行して) インストールした後、インストール フォルダーに" ClassLibrary.dll.config " ファイルが表示されません。ファイルはどこにもありませんが、ファイルからのデータの取得は正しく機能しています。さらに、クラス ライブラリ内のメソッドから次のコードを実行すると、予想されるパスC:\Program files\CompanyName\ProductName\ClassLibrary.dll.configが返されます。

誰かが私がここで見逃しているものに光を当てることができれば、それは本当に素晴らしいことです.

public static string MyMethod()
{
Assembly assem = Assembly.GetExecutingAssembly();
Configuration config = ConfigurationManager.OpenExeConfiguration(assem.Location);

return "The assembly location was: " + assem.Location + Environment.NewLine +
"The config file path was: " + config.FilePath;

// Gives me "C:\Program files\CompanyName\ProductName\ClassLibrary.dll.config"

}
4

4 に答える 4

3

クラス ライブラリでは、app.config ファイルはほとんど役に立ちません。アプリケーション設定値は Settings.settings ファイルに保存され、Settings.designer.cs ファイルにコンパイルされます。

app.config でアプリケーション設定の 1 つの値を直接変更しても、アプリケーションの実行中に表示される設定値には影響しません。実際に設定エディターを開く必要があります。その時点で、app.config ファイルと Settings.settings ファイルの違いに気づき、アプリの値を使用して Settings.settings ファイルを更新するかどうかを問い合わせます。 .config.

于 2010-03-26T20:13:05.890 に答える
2

.NET のバージョンに依存します。.NET 4.0 より前では、データを読み込むためにカスタム処理を行わない限り、クラス ライブラリは独自の app.config ファイルを使用できません。これらのシナリオでは、クラス ライブラリの初期化に適切なデータをすべて要求し、それを消費するクラスの構成 (つまり、最終的には winform の app.config ファイル) から。

于 2010-03-26T19:39:52.897 に答える
1

クラス ライブラリは、それを呼び出した実行可能ファイルの構成ファイルを使用します。

于 2010-03-26T19:41:02.247 に答える
0

デフォルト値は dll に保存されます。

しかし、コードで設定を変更して保存するとします。次回のためにどこに保管されますか?

WinXP の場合:

C:\Documents and Settings\username\Local Settings\Application Data\

または Windows Vista/7 では次を参照してください。

C:\Users\ユーザー名\AppData\Local\

アプリケーションにちなんで名付けられたフォルダーが見つかり、そのフォルダーにドリルダウンすると、user.config という名前のファイルが見つかります。

例えば:

C:\Documents and Settings\username\Local Settings\Application Data\MyApp\myapp.exe_urlla1ii3sytrhx0adqtjnjuc24oacqpgu4\1.0.0.0\user.config

于 2010-03-26T20:41:02.620 に答える