5

Visual Studioアドインを作成する場合、アドインにapp.configをどのように利用できますか。プロジェクトに1つ追加してデプロイすると、アドインが実行され、プログラムでConfigurationManager.AppSettingsを介してアクセスしようとすると、アドインの構成ファイルが取得されません。
私は何か間違ったことをしていますか、それともアドインのファイルベースの構成設定にアクセスする別の方法がありますか?

4

1 に答える 1

8

ConfigurationManager.AppSettings は、ロード先の AppDomain の構成ファイルを取得します。通常、この構成ファイルは、エントリ ポイントの実行可能ファイルに関連付けられたものです。あなたの場合、エントリ ポイントの実行可能ファイルも実行する AppDomain も制御しないため、ConfigurationManager.AppSettings を使用できません。

あなたの質問は、基本的に「DLL に関連付けられた構成ファイルを作成するにはどうすればよいですか?」に要約されます。( C# Dll 構成ファイル)。次の 2 つのことを行う必要があります。

  1. アプリケーション構成ファイル項目をプロジェクトに追加し、必ず DLL と同じフォルダーにデプロイしてください。
  2. 次のようなコードを使用して、DLL から構成ファイルにアクセスします。

     string pluginAssemblyPath = Assembly.GetExecutingAssembly().Location;
     Configuration configuration = ConfigurationManager.OpenExeConfiguration(pluginAssemblyPath);
     string someValue = configuration.AppSettings.Settings["SomeKey"].Value;
    

これは、シャドウ コピーを使用して読み込まれない通常の DLL に対して確実に機能します。VS がプラグインをロードする方法がわかりません。問題が発生した場合はお知らせください。シャドウ コピーを介して読み込まれる DLL の回避策を投稿できます。

于 2010-10-13T22:48:22.313 に答える