簡體   English   中英

自定義MSBuild任務無法從App.config中讀取[C#]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM