使用 Octopus Deploy 转换 ASP.NET 5 json 个配置文件

Transform ASP.NET 5 json configuration files with Octopus Deploy

我正在使用 Octopus Deploy 根据本指南将 ASP.NET 5 个网站部署到 Azure:https://gist.github.com/alfhenrik/ee08dbb1fb6e2bc7f772

我正在尝试找到一种转换配置文件的方法,但尚未找到任何优雅的解决方案。目前我最好的建议是在本地开发环境中使用带有配置的 appsettings.json 和 appsettings.Release.json 这是 appsettings.json 的精确副本,其中所有值都是章鱼变量,如 #{myVariableName} .然后当使用 Octopus 部署时,我们有一个预部署脚本,它用 appsettings.Release.json 替换 appsettings.json,然后 运行 变量替换 appsettings.json.

有更好的建议吗?

目前 octopus 部署不支持 ASP.NET 5,因为它有大量更改。

然而,Octopus Deploy 的团队正在努力实现这一目标。

转到此 link 了解更多信息:http://help.octopusdeploy.com/discussions/questions/6083-deploying-aspnet-vnext-web-application

我解决这个问题的方法是使用 xml 配置而不是 json。我将所有配置从 appsettings.json 和 appsettings.Release.json 移至 Web.config 和 Web.Release.config,并在 Startup.cs 中添加了 .AddXmlFile("Web.config")。这样,我可以在 Octopus Deploy 中使用内置的配置转换,同时等待它们开始正确支持 ASP.NET 5 个应用程序。

更新 2016-02-02: 从 v3.3 开始,对 .json 配置文件的支持现已添加到 Octopus Deploy。参见 https://octopus.com/blog/octopus-deploy-3.3#ASPNETCoreJSON

八达通现已支持此功能,

config transformation for json config files

henningst 的建议是正确的。但是如果有人像我一样卡在以前的章鱼版本中。您可以通过 运行 在框中设置环境变量的自定义 powershell 脚本来解决它

sleep 50
$EnvName = $OctopusParameters["ASPNETCORE_ENVIRONMENT"]
[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", $EnvName, "Machine")

并且只需添加一个名为 "ASPNETCORE_ENVIRONMENT" 的变量,其中包含您应该部署到的环境的名称,例如:QA

例如:appSettings.QA.Json -> 添加值为 QA

的变量 ASPNETCORE_ENVIRONMENT

然后靠正常:

.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true)

在框中进行变换