【问题标题】:read from app.config instead of dll.config从 app.config 而不是 dll.config 读取
【发布时间】:2019-09-20 00:21:05
【问题描述】:

我有简单的控制台应用程序。在应用程序中有 app.config,我定义了一些设置,我使用 ConfigurationManager 类获取如下所示

 var setting = ConfigurationManager.AppSettings[key]

当我在本地环境中调试时,这可以正常工作。现在,当我将此代码部署到开发服务器时,它会从 dll.config 而不是 app.config 读取设置。 我试图谷歌,但我无法找到任何线索。

是否可以将行为更改为始终从 app.config 读取?我问的原因是因为我为 app.config 添加了转换。所以对于开发服务器,它被称为 app.DevServer.config 并且它有一些特定的设置。

【问题讨论】:

    标签: c# console-application app-config


    【解决方案1】:

    是的,您可以使用如下代码手动读取您的 app.config 文件:

        var configMap = new ExeConfigurationFileMap { ExeConfigFilename = "app.DevServer.config" };
        var config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None, true);
        var setting = config.AppSettings.Settings[key];
    

    【讨论】:

    • 但是当代码被部署然后app,config被部署而不是app.devserver.config。我不能写像 app.devserver.config 之类的硬编码名称
    • 那你不能写“app.config”作为名字吗?我想我不明白发生了什么。
    • 它从某个奇怪的路径读取 app.config,而不是从我当前项目所在的位置读取。它从 C:\\Users\\MyUser\\AppData\\Local\\Temp\\lp51yg0m.gbo\\2v0j3vt4.4t2\\App.config 读取
    • 您可以为ExeConfigFilename 指定完整路径。您可能可以从 Assembly.GetEntryAssembly()LocationCodeBase 属性(如果这是一个 EXE)中获取它。
    猜你喜欢
    • 1970-01-01
    • 2013-07-06
    • 2013-09-13
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2011-01-24
    相关资源
    最近更新 更多