首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何设置发布ASP.NET核心应用程序时要考虑的ASPNETCORE_ENVIRONMENT

如何设置发布ASP.NET核心应用程序时要考虑的ASPNETCORE_ENVIRONMENT
EN

Stack Overflow用户
提问于 2017-01-09 19:24:38
回答 13查看 179.8K关注 0票数 159

当我将我的ASP.NET核心web应用程序发布到我的本地文件系统时,它总是采用production-config和ASPNETCORE_ENVIRONMENT变量,其值= "Production“。

如何以及在何处设置ASPNETCORE_ENVIRONMENT变量的值,以便不仅用于调试,而且用于发布的?我已经尝试了以下选项,但没有成功:

  • in windows
  • in file .pubxml file
  • in file launchSettings.json
  • in file
  • (windows设置中的文件设置文件中的
  • 文件launchSettings.json
  • in文件中的
EN

回答 13

Stack Overflow用户

发布于 2019-01-30 10:09:33

除了上面提到的选项之外,还有一些其他的解决方案。

1.修改项目文件(.CsProj)文件

MSBuild支持EnvironmentName属性,该属性可以帮助根据您希望部署的环境设置正确的环境变量。环境名称将在发布阶段添加到web.config中。

只需打开项目文件(*.csProj)并添加以下XML。

<!-- Custom property group added to add the environment name during publish

     The EnvironmentName property is used during the publish
     for the environment variable in web.config
-->
<PropertyGroup Condition=" '$(Configuration)' == '' Or '$(Configuration)' == 'Debug'">
  <EnvironmentName>Development</EnvironmentName>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)' != '' AND '$(Configuration)' != 'Debug' ">
  <EnvironmentName>Production</EnvironmentName>
</PropertyGroup>

对于调试配置或未指定配置,上面的代码会将环境名称添加为Development。对于任何其他配置,在生成的web.config文件中,环境名称为Production。更多细节请访问here

2.在发布配置文件中添加EnvironmentName属性。

我们也可以在发布配置文件中添加<EnvironmentName>属性。打开位于Properties/PublishProfiles/{profilename.pubxml}的发布配置文件。这将在发布项目时在web.config中设置环境名称。更多细节请访问。

<PropertyGroup>
  <EnvironmentName>Development</EnvironmentName>
</PropertyGroup>

3.使用 dotnet publish的命令行选项

此外,我们可以将属性EnvironmentName作为命令行选项传递给dotnet publish命令。以下命令将环境变量作为Development包含在web.config文件中。

dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development

票数 137
EN

Stack Overflow用户

发布于 2017-01-09 23:33:36

Option1:

要在Windows中设置ASPNETCORE_ENVIRONMENT环境变量:

  • 命令行- setx ASPNETCORE_ENVIRONMENT "Development"

$Env:ASPNETCORE_ENVIRONMENT = "Development"

  • PowerShell

有关其他OSes,请参阅

选项2:

如果你想使用web.config设置ASPNETCORE_ENVIRONMENT,那么像这样添加aspNetCore -

<configuration>
  <!--
    Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
  -->
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath=".\MyApplication.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false">
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>
票数 93
EN

Stack Overflow用户

发布于 2017-09-24 20:09:31

在Visual Studio IDE中设置它的简单方法。

菜单项目→属性→调试→环境变量

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41546943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档