如何设置ASPNETCORE_ENVIRONMENT来考虑发布一个asp.net核心应用程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (36)

当我将我的asp.net核心Web应用程序发布到本地文件系统时,它始终将production-config和ASPNETCORE_ENVIRONMENT变量与value =“Production”一起使用。

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

  • 在Windows设置
  • 在.pubxml文件中
  • 在launchSettings.json中
  • 在project.json中
提问于
用户回答回答于

应该按照文档中提供的说明使用web.config

<aspNetCore processPath="dotnet"
        arguments=".\MyApp.dll"
        stdoutLogEnabled="false"
        stdoutLogFile="\\?\%home%\LogFiles\aspnetcore-stdout">
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
    <environmentVariable name="CONFIG_DIR" value="f:\application_config" />
  </environmentVariables>
</aspNetCore>

请注意,也可以设置其他环境变量。

ASP.NET核心模块允许指定processPath属性中指定的进程的环境变量,方法是在aspNetCore元素下的environmentVariables集合元素的一个或多个environmentVariable子元素中指定它们。本节中设置的环境变量优先于该进程的系统环境变量。

用户回答回答于

选项1:

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

命令行 - setx ASPNETCORE_ENVIRONMENT "Development"

电源外壳 - $Env:ASPNETCORE_ENVIRONMENT = "Development"

对于其他操作系统,请参阅 - https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments

选项2:

如果你想设置ASPNETCORE_ENVIRONMENT使用web.config然后添加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>

扫码关注云+社区