我正在通过 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
。见下文:
转到您的版本编辑页面-->变量选项卡-->添加新变量-->设置阶段范围
还有另一种方法可以使用 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/