私は別のアセンブリの機能を使用するWeb.Apiアプリケーションを持っています。このアセンブリでは、いくつかの文字列を格納する.configファイルを作成しました。dll.configは一時asp.netファイルフォルダにコピーされません
私はこれらの文字列の1フェッチすべき次のコードを使用しています:一時asp.netファイルへ
private static string LogUrl = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings.Settings["WebApi-LogUrl"].Value.ToString();
Assembly.GetExecutingAssembly().Location
ポイントを、(C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ dc2fa3d4 \ 834ee436 \ assembly \ dl3 \ cd068512)、dll.configファイルはそこにコピーされません。 その結果、私のアプリケーションをデバッグすることができなくなり、実際のIISサーバー上でコードを実行するとnullが返されます。
設定を取得する直前にブレークポイントを設定すると、一時フォルダを保持できます。そこにdll.configファイルをコピーすると、すべて動作しますが、どのようにすれば自動的に行うのですか。
は私のように設定私のdll.configファイルのプロパティを持っている「アクションをビルドします。コンテンツを」、「出力ディレクトリにコピー:常に」
任意の助けをいただければ幸い、今時間ググています。 !
// The dllPath can't just use Assembly.GetExecutingAssembly().Location as ASP.NET doesn't copy the config to shadow copy path
var dllPath = new Uri(Assembly.GetExecutingAssembly().GetName().CodeBase).LocalPath;
var dllConfig = ConfigurationManager.OpenExeConfiguration(dllPath);
// Get the appSettings section
var appSettings = (AppSettingsSection) dllConfig.GetSection("appSettings");
return appSettings.Settings;
キーがある::(
敬具、 ピーター・ラーション
私はこれをチェックしなければなりません...提案に感謝します! –
私のために働いた。ヒントをありがとう! –
これは私を助けました。私はまた、CodeBaseプロパティがAssemblyクラスのプロパティであるため、GetName()の呼び出しが役に立たないことにも気付きました。 – sluki