Azure DevOps - 在部署组中的目标计算机上设置环境变量

标签 azure asp.net-core azure-devops

我正在通过 Azure DevOps 的 Pipelines 选项部署 Asp.Net Core 应用程序,并尝试在每台目标计算机上设置环境变量。每个部署环境都有自己的设置文件(例如“appsettings.Development.json”),Asp.Net 应用程序在启动时通过读取 ASPNETCORE_ENVIRONMENT 环境变量来选择该文件。我正在使用部署组将工件部署到我们的现场服务器,并且在设置要使用的正确应用程序设置文件之前,它工作得很好。

我尝试使用具有以下内联脚本的 PowerShell 任务,但没有成功:

$Env:ASPNETCORE_ENVIRONMENT="$(EnvironmentName)"

所有管道任务均已成功执行,但环境变量并未实际应用到目标计算机上。

如何在部署组中的目标计算机上设置环境变量?

最佳答案

您的上述内联脚本$Env:ASPNETCORE_ENVIRONMENT="$(EnvironmentName)"仅在powershell任务打开的当前终端窗口中设置变量。 powershell 任务完成后,终端窗口将关闭。我们通常使用以下解决方案来设置管道中的环境变量。

如果您想在发布管道中的目标计算机上设置环境变量。您可以直接在发布管道变量选项卡中设置变量ASPNETCORE_ENVIRONMENT。见下文:

转到您的版本编辑页面-->变量选项卡-->添加新变量-->设置阶段范围

enter image description here

还有另一种方法可以使用 logging commands 动态设置环境变量。 (Write-Host "##vso[task.setvariable..]) 在管道中。请参阅下面的 powershell 任务中的内联脚本:

echo "##vso[task.setvariable variable=ASPNETCORE_ENVIRONMENT]$(EnvironmentName)"

请检查official document了解更多信息。

关于Azure DevOps - 在部署组中的目标计算机上设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66699979/

相关文章:

git - fork 后在 devOps 上设置 git 的默认存储库

asp.net-core - Dotnet 测试任务失败, '' MSB1008 : Only one project can be specified"error after upgrade to version 2. 0

docker - 无需在每个Dockerfile中构建二进制文件即可构建多个Docker镜像

c# - Net Core app.UseMiddleware<T>() 和 app.Use(context, next) 之间的区别

Azure Devops - 构建项目,删除一些文件并压缩文件夹

azure-devops - VSTS持续集成触发器无法正常工作

azure - DiagnosticMonitorTraceListener 在 Azure 中不起作用

azure - Service Fabric Web 服务线程限制

当 "SqlReferenceProperties"填充了 "User"字段时,azure-streamanalytics-cicd 失败