我正在使用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上运行变量替换。
有更好的建议吗?
答案 0 :(得分:3)
我为解决这个问题所做的是使用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
答案 1 :(得分:0)
Octopus现在支持此功能,
答案 2 :(得分:0)
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)
在框中进行转换