【问题标题】:How do I set the environment in a Visual Studio generated publish profile如何在 Visual Studio 生成的发布配置文件中设置环境
【发布时间】:2019-05-19 23:16:48
【问题描述】:

我有 2 个发布配置文件。我想做一个舞台和一个制作。浏览了一下我发现你可以使用命令行发布来设置一个环境变量:dotnet publish /p:Configuration=Release /p:EnvironmentName=Staging。但是我的发布配置文件是由 Visual Studio 生成的,我想知道是否可以在其中设置它?

【问题讨论】:

  • 你要部署在 IIS 上吗?
  • 是的。它是一个独立的应用程序。遗憾的是,除了发布之外,我没有任何访问服务器的权限。所以我不能在服务器本身上设置环境变量。
  • 您可以远程连接您的 IIS 实例或站点吗?
  • 没有。我只能将文件传输到该文件夹​​。

标签: visual-studio .net-core


【解决方案1】:

虽然我没有在 .Net Core 上尝试过这种方法,但我相信它会起作用,因为它是 VS Publish (msbuild) 的特性。

您需要创建 web.config。像这样的:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="WebDAV" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <modules>
      <remove name="WebDAVModule" />
    </modules>
    <aspNetCore requestTimeout="00:30:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
      <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>

那么您需要为这些添加 Config Transform(见下文)

对于配置转换,您可以查看此 github 文档:https://github.com/vijayrkn/webconfigtransform/blob/master/README.md

那么您还需要转换您的发布配置文件。

web.$(publish-profile-name).config 将成为您的 web.config 名称。您需要分别更改转换后的 web.configs 的环境变量。

【讨论】:

  • 你在哪里设置你想在发布配置文件中使用什么环境? Visual Studio 是如何知道使用什么 web.config 的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 2019-10-17
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 2011-03-04
相关资源
最近更新 更多