环境变量在配置提供程序中不可见

时间:2019-06-20 08:50:54

标签: c# asp.net-core .net-core azure-devops

我正在尝试为Azure Devops Entity Framework数据库迁移任务设置数据库连接字符串。

我的想法不是在git上发布具有数据库连接的配置,而是使用环境变量覆盖具有生产设置(数据库连接字符串)的应用配置。

开始迁移时,应用程序不会读取set环境变量,而是默认使用dev连接字符串。

例如,连接字符串条目为:$args = array( 'post_type' => 'product', 'posts_per_page' => -1, 'meta_key' => 'logo_color', 'meta_value' => 'white' ); $query = new WP_Query( $args );

我将其设置为:Select SETL.SettlementDay as SD, SETL.Amount as Amount, SETL.quantity as Q From Setlement as SETL Where SETL.SettlementDate < getdate()

我不工作。 当我在Visual Studio调试属性中设置连接字符串时,它可以正常工作。 正如MS文档所建议的那样,我已经在应用程序启动中包含了环境变量。

VS调试器设置变量和控制台设置变量之间有什么区别?

感谢您的帮助。

更新: Visual Studio将环境变量添加到ConnectionStrings.Database

1 个答案:

答案 0 :(得分:0)

伙计,这是一例脑部打ic ... 我没有将环境变量提供程序推送到分支,因此Azure Devops任务没有读取它们:

       WebHost.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.AddEnvironmentVariables(prefix: "ASPNETCORE_");
            })
            .UseStartup<Startup>()
            .UseWebRoot("wwwroot");

这有点尴尬:-(
但这可能会对将来的人有所帮助。
感谢8ytan发表评论。