您在 VSTS 中设置的环境变量仅用于部署本身(即 VSTS 所做的任何事情,例如构建应用程序或运行单元测试),但运行时应用程序将使用托管它的服务器上的任何一个。
如果您希望部署的应用程序也使用环境变量,则需要在 VSTS 部署到的 IIS 服务器上设置环境变量。 Microsoft 文档显示如何根据您的服务器进行设置:Setting the environment
响应 cmets 的更新:
设置环境变量的推荐方法是在机器本身上 - 即。登录到您要部署到的 IIS 服务器并在 system properties -> advanced settings -> environment variables 中添加 ASPNETCORE_ENVIRONMENT 环境变量
如果由于某种原因您无法执行此操作,您可以在 Web.config 文件中设置它们(根据该文档)。如果您总是设置相同的值,您应该能够像这样将您需要的内容放在Web.config 中
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
如果您真的需要 XML 转换(老实说,我不确定您是否在这种情况下这样做 - 这是为了在部署时根据构建配置更改 Web.config 文件。正如其他人提到的那样,使用asp.net core 推荐的配置设置是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>