NetCore应用程序配置是否可以使用Properties.Settings覆盖类库中的值?

问题描述

在NetFramework中,您可以具有一个包含Settings.Setting文件的类库,该文件最终将像下面这样提供一个app.config文件:

    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089">
            <section name="Namespace.Lib.Properties.Settings" type="System.Configuration.ClientSettingsSection,PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
        </sectionGroup>
    </configSections>
    <applicationSettings>
        <Namespace.Lib.Properties.Settings>
            <setting name="MyVariable" serializeAs="String">
                <value>Default Value</value>
            </setting>
        </NameSpace.Lib.Properties.Settings>
    </applicationSettings>

在类库代码中,您将使用Properties.Settings.Default.MyVariable

读取值

在那之后,在主应用程序中,您可能还会有一个app.config(或web.config),其部分与上面的部分完全相同,但是变量的值不同,因此它将覆盖默认值,因此库将使用您的应用程序所需的内容。

-

现在在NetCore中,我知道新方法正在使用appsettings.json文件,并且主机Startup接收了一个IConfiguration类,可以在其中读取设置,提要模型,甚至注入服务。但是要使其正常工作,您的类库需要以一种可以接受新配置格式或模型的方式进行编码。

我也知道引入System.Configuration.ConfigurationManager NuGet软件包是为了保持支持旧的配置文件格式。并在类库中使用它,允许它像以前一样使用其app.config值,而不会出现任何错误。

-

我有一个类库,在其代码中使用Properties.Settings.Default,我不想重新编码以接受IConfiguration(以保持与仍在使用它的其他NetFramework项目的兼容性)。我将类库移植到netstandard2.0,并添加了配置NuGet包并进行了构建。

我的问题是,即使从我的NetCore应用程序中添加NuGet程序包,并手动添加app.config(或web.config)并像以前一样覆盖这些部分,它似乎也不会传播到类库或完全可以使用。当类库访问Properties.Settings.Default.MyVariable时,它仍读取其自身的默认值,而不是我尝试从应用程序覆盖的默认值。为什么呢?

还有可能吗?

解决方法

问题只是文件名。

使用“ Web.config”允许IIS读取服务器的部分。 但是要在应用程序中使用,必须将其命名为“ ApplicationName.dll.config”。

以前,NetFramework的ASP.NET会自动将web.config复制到应用程序名称,现在好像没有。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...