咨询区

Dario

当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production

请问如何动态修改 ASPNETCORE_ENVIRONMENT 的值,这样的话在 调试发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。

  • windows settings

  • .pubxml file

  • launchSettings.json

  • project.json

回答区

Abhinav Galodha

有下面几个解决方案。

  • 修改 .csproj 文件

可以在 .csproj 中增加 <EnvironmentName> 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。


<!-- Custom Property Group added to add the Environment name during publishThe 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>
  • 在 FolderProfile.pubxml 中添加 EnvironmentName

可以在 publish profile 中添加 <EnvironmentName> 节点配置你需要的环境变量,如下代码所示:


<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><PropertyGroup><DeleteExistingFiles>True</DeleteExistingFiles><EnvironmentName>Development</EnvironmentName></PropertyGroup>
</Project>

  • dotnet publish 时添加

在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量


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

Sanket

我大概有两种方案。

  • cmd配置

Command Line : setx ASPNETCORE_ENVIRONMENT "Development"

PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"

  • web.config 配置

可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:


<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>

点评区

相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish 时指定,学习了 ????????????。

NET问答: 发布 asp.net core 时如何修改 ASPNETCORE_ENVIRONMENT 环境变量?相关推荐

  1. 发布ASP.NET Core程序到Linux生产环境

    原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...

  2. 【历史上的今天】6 月 27 日:摩托罗拉创始人出生;微软发布 ASP.NET Core;靠计算机起家的美国大亨

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 6 月 27 日,在 1972 年的今天,Syzygy Engineering 更名为 Atari( ...

  3. 【历史上的今天】6 月 27 日:摩托罗拉背后的高尔文家族;微软发布 ASP.NET Core;靠计算机起家的美国大亨

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2023 年 6 月 27 日,在 1972 年的今天,Syzygy Engineering 更名为 Atari( ...

  4. VS2022(Visual Studio)发布ASP.NET Core Web API应用到Web服务器(IIS)

    概述 写完代码后,最常用.简单的发布方式,就是将应用发布到文件夹,然后将publish文件夹复制到要部署的机器上(本地.局域网服务器.云服务器等). 但是在实际工作中,可能会遇到需要频繁地发布,以使应 ...

  5. 发布 ASP.NET Core 应用

    第一步:运行 dotnet restore 命令,以还原项目中指定的依赖项 1 dotnet restore 第二步:使用 dotnet build 命令为目标平台上的应用创建调试版本. 如果不指定想 ...

  6. ASP.NET Core 2.0 : 二. 开发环境

    ASP.NET Core 系列目录 macOS:Install Visual Studio for Mac 系统要求: macOS 10.12 Sierra 及更高版本 其他要求: 可能会要求安装xc ...

  7. ASP.NET Core 优雅的在开发环境保存机密(User Secrets)

    前言 在应用程序开发的过程中,有的时候需要在代码中保存一些机密的信息,比如加密密钥,字符串,或者是用户名密码等.通常的做法是保存到一个配置文件中,在以前我们会把他保存到web.config中,但是在A ...

  8. 开发环境安装时为什么要设置环境变量?

    文章目录 前言 一.什么是环境变量? 1.Path环境变量 2.用户变量与系统变量的区别 二.配置JDK的Path变量以及JAVA_HOME变量 1.配置JDK的Path变量 2.配置JAVA_HOM ...

  9. JDK配置环境变量时误删了Path环境变量么办?

    这算是给自己开始学习java的一个小总结. 首先是下载JDK,我想大家看教程等都会,我不过多解释.给一个我认为不错的链接,适合Win10系统. Java 开发环境配置 | 菜鸟教程 之后如果你在使用过 ...

最新文章

  1. 关于linux系统下文件压缩归档操作命令略提
  2. Servlet/Tomcat/ Spring 之间的关系
  3. 无重叠区间及用最少的箭射爆气球
  4. 详细探究Spark的shuffle实现
  5. jsp input maxlength无效_出现这3个现象, 说明你的孩子在无效学习! 家长们: 原来如此...
  6. javascript中的Date类型
  7. 【写作技巧】毕业论文的目录和正文有什么讲究?
  8. Android驱动开发第一章
  9. ssm启动不报错_搭建ssm+maven环境,启动报错,说spring监听无法实例化,求解?
  10. 新兴IT企业特斯拉(七)——充电先行
  11. php微信h5支付对接流程,微信H5支付接口开发的流程与常见问题
  12. 基于加速度计与气压计的三阶卡尔曼滤波计算加速度、速度及高度
  13. “看来少宇这家伙身上有着惊天的秘密啊
  14. 《开源安全运维平台-OSSIM最佳实践》将于2015年底出版
  15. 用canvas写个接水管小游戏
  16. java多线程并发之旅-34-性能与可伸缩性
  17. 【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程
  18. php只获取年月日,php怎么实现date只显示年月日
  19. 如何将STP文件转换为CAD文件
  20. 亚信Internet中国

热门文章

  1. 史上最全的Angular.js 的学习资源
  2. 软概(lesson 2):课堂测试
  3. SQL JOIN连接分类[转]
  4. MyBatis总结七:动态sql和sql片段
  5. hdu - 2586 How far away ?(最短路共同祖先问题)
  6. Comparison of video container formats
  7. jquery特效(1)—点击展示与隐藏全文
  8. Electron - 创建跨平台的桌面客户的应用程序
  9. 复习Javascript专题(一):基本概念部分
  10. 【跃迁之路】【599天】程序员高效学习方法论探索系列(实验阶段356-2018.09.27)...