构建中的配置管理无源控制配置转换



在appSettings.json文件(ASP.NET Core Application)中给定一个名为"数据:ConnectInsTring"的配置,如何在构建中覆盖它?通过覆盖它可以是有一个步骤可以改变appsettings.json的构建过程中的值,或者在使用" dotnet test"或其他内容时覆盖参数。

更多信息:

i具有AppSettings.json中标准配置的ASP.NET核心应用程序。我不希望在源控件中检查任何连接字符串或敏感数据。

我正在使用Visual Studio Team Service(Cloud TFS)构建我的应用程序。在执行测试的步骤中,我希望这些测试能够与我不想在凭据中检查的远程服务进行操作。

http://marketplace.visualstudio.com上有许多扩展名,可以在没有任何复杂NESS的情况下为您提供帮助。

https://marketplace.visualstudio.com/items?itemname=yodlabs.variabletasks

我喜欢随附的变量任务包:

  • 设置变量设置一个变量值,并可选地将转换应用于它。
  • 带有凭据设置的变量设置了现有服务端点的用户名/密码
  • 从JSON中设置变量,使用JSON Path从JSON提取一个值
  • 使用XPATH从XML提取XML的变量
  • 更新构建号允许您更改构建号码增量版本增量SEMVER版本号

超级简单...您也可以搜索" JSON"或"变量"即可找到其他选项...

最流行的方法:

  • 使用App Secrets
  • 使用project.json中的scripts部分。您有4个活动 - 预编译,专业后,前出版,后出版

您可以将构建中的环境变量aspnetcore_environment设置为"测试"之类的东西。创建一个名为AppSettings.test.json的AppSettings.json文件。然后,当您在startup.cs中设置配置时,例如...

          var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

当环境变量设置为测试时,您将加载新的AppSettings文件,并将连接字符串设置为您想要的任何内容。

最新更新