VSTS / TFS设置环境变量ASP.NET核心

问题描述 投票:6回答:5

我正在尝试使用VSTS通过以下任务将ASP.NET Core应用程序部署到IIS

enter image description here

但是,经过大量的Google搜索和浏览后,我找不到为部署设置环境变量的方法。我在环境范围的发布定义中设置的变量未设置为环境变量。

enter image description here

任何想法如何实现?

c# asp.net asp.net-core azure-devops azure-pipelines-release-pipeline
5个回答
3
投票
您在VSTS中设置的环境变量仅用于部署本身(即VSTS正在做的任何事情,例如构建应用程序或运行单元测试),但是运行时应用程序将使用托管它的服务器上的任何一个。] >

如果您希望已部署的应用程序也使用它们,则需要在VSTS部署到的IIS服务器上设置环境变量。 Microsoft文档显示了如何根据您的服务器进行设置:Setting the environment

根据评论更新:

建议的设置环境变量的方法是在机器本身上-即。登录到要部署到的IIS服务器,并在ASPNETCORE_ENVIRONMENT

中添加system properties -> advanced settings -> environment variables环境变量

如果由于某种原因而无法执行此操作,则可以在Web.config文件中设置它们(根据该文档)。如果您始终设置相同的值,则应该可以将所需的内容放在Web.config中,如下所示

<environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables>

[如果您确实需要XML转换(说实话,我不确定您在这种情况下会这样做-这是为了在部署时根据构建配置更改Web.config文件。就像其他人提到的那样,使用asp .net核心,建议的配置设置是appsettings[.environment].json文件,这些文件根据匹配的计算机级别ASPNETCORE_ENVIRONMENT env变量自动加载),您实际上需要使用正确的语法在转换文件中定义转换,并用它替换各个部分你想改变。这显然是更困难的选择。

请参阅:用于创建转换文件的How to: Transform Web.config When Deploying a Web Application Project和用于选择配置语法的Web.config Transformation Syntax for Web Project Deployment Using Visual Studio,如果您选择沿着该路径的话

类似这样的内容(目前无法测试,但这应该可以给您一个想法-请注意转换文件上的转换名称空间和xdt:属性)。我相信要加载的转换文件与构建配置相匹配,您可能需要将其配置为VSTS任务的一部分:

Web.config

<configuration> <system.webServer> <aspNetCore ...> <environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables> </aspNetCore> </system.webServer> </configuration>

Web.Release.config(用于构建配置“ Release”的转换文件)

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <system.webServer> <aspNetCore ...> <environmentVariables> <environmentVariable xdt:Transform="Replace" xdt:Locator="Match(name)" name="ASPNETCORE_ENVIRONMENT" value="Production" /> </environmentVariables> </aspNetCore> </system.webServer> </configuration>


2
投票
对于具有web.config的ASP.NET Core 1.x项目,可以使用以下内容。

1
投票
这是我在Release管道中使用的powershell脚本(我不喜欢在内部版本中设置ASPNETCORE_ENVIRONMENT)

0
投票
请参阅以下步骤:

0
投票
设置环境变量的另一种方法(不是使用XML transform方法)是添加一个Powershell任务,该任务使用appCmd命令在ApplicationPool范围内设置环境变量
© www.soinside.com 2019 - 2024. All rights reserved.