app.config 迁移 .net 框架 4.x Core 2.0 Web API 项目中引用的程序集?

app.config migration for .net framework 4.x assemblies referenced in Core 2.0 Web API project?

我有一个 .net 核心 web api 项目引用 4.x 具有 app.config 设置的程序集。我可以在不修改旧程序集的情况下将 app.config 设置转换为 appsettings.json,还是只放入一个包含旧程序集设置的 app.config 文件?如果我只是放入 app.config 个文件,我该如何在发布时更改这些设置?

Core 2.0 Web API 中,您也可以通过这种方式将配置指向旧的 app.config

IConfigurationRoot configuration = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json", optional: true)
    .AddXmlFile("app.config")
    .Build();

然后您将能够通过按键(看起来像冒号分隔的 XML 路径)访问您的连接字符串(和其他应用程序设置)。例如,对于连接字符串部分,您可以通过这种方式获取连接名称 MyConnectionName 的值:

key: "connectionStrings:add:MyConnectionName:connectionString" 
value: "...your connection string..."

或者您可以按照 here 中的详细描述实施您自己的 LegacyConfigurationProvider,并得到如下内容:

IConfigurationRoot configuration = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json", optional: true)
    .Add(new LegacyConfigurationProvider())
    .Build();

另见 Configuration in ASP.NET Core

所以我最后做的只是添加 app.config 文件。作为发布过程的一部分,我还添加了一个 app.release.config 并将其重命名为 app.config。我无法使用配置转换。我根本无法在 Azure CI 中使用它。