[英]Custom MSBuild Task not reading from App.config [C#]
我編寫了一個自定義構建任務,從其App.config文件中的appsettings讀取值。 當我將任務編譯為可執行文件並運行它時,任務完美無缺。 從配置文件中讀取正確的值。 但是當我將它編譯為程序集並從我的構建腳本中的目標運行它時,我得到一個System.NullReferenceException。 foreach循環中發生異常,因為配置管理器返回null。
IEnumerable<string> tables = ConfigurationManager.AppSettings.GetValues(key);
foreach (string txt in tables)
{
Logic.....
}
我正在調用自定義任務,因為我已經注釋掉了問題並且它已成功構建。
有誰知道為什么會發生這種情況? 或者如果我甚至能夠使用自定義構建任務的App.config文件?
提前致謝
如果將項目編譯為庫,則它將從調用可執行文件的app.config中讀取。 如果您將項目編譯為可執行文件,那么它將從它自己的app.config中讀取。
如果有人感興趣我使用以下代碼來訪問自定義配置
private static string[] GetConfigFile()
{
var map = new ExeConfigurationFileMap();
map.ExeConfigFilename = @"C:\ConfigFile.config";
config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
return config.AppSettings.Settings.AllKeys;
}
上面的代碼從指定的配置文件中獲取密鑰列表。 返回值存儲在一個字符串數組中,我使用foreach循環運行,如下所示
string[] keyNames = GetConfigFile();
foreach (string keys in keyNames )
{
KeyValueConfigurationElement keyval = config.AppSettings.Settings[keys];
Console.WriteLine(keyval.Value);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.