NET问答: 发布 asp.net core 时如何修改 ASPNETCORE_ENVIRONMENT 环境变量?
咨询区
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 环境变量?相关推荐
- 发布ASP.NET Core程序到Linux生产环境
原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...
- 【历史上的今天】6 月 27 日:摩托罗拉创始人出生;微软发布 ASP.NET Core;靠计算机起家的美国大亨
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 6 月 27 日,在 1972 年的今天,Syzygy Engineering 更名为 Atari( ...
- 【历史上的今天】6 月 27 日:摩托罗拉背后的高尔文家族;微软发布 ASP.NET Core;靠计算机起家的美国大亨
整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2023 年 6 月 27 日,在 1972 年的今天,Syzygy Engineering 更名为 Atari( ...
- VS2022(Visual Studio)发布ASP.NET Core Web API应用到Web服务器(IIS)
概述 写完代码后,最常用.简单的发布方式,就是将应用发布到文件夹,然后将publish文件夹复制到要部署的机器上(本地.局域网服务器.云服务器等). 但是在实际工作中,可能会遇到需要频繁地发布,以使应 ...
- 发布 ASP.NET Core 应用
第一步:运行 dotnet restore 命令,以还原项目中指定的依赖项 1 dotnet restore 第二步:使用 dotnet build 命令为目标平台上的应用创建调试版本. 如果不指定想 ...
- ASP.NET Core 2.0 : 二. 开发环境
ASP.NET Core 系列目录 macOS:Install Visual Studio for Mac 系统要求: macOS 10.12 Sierra 及更高版本 其他要求: 可能会要求安装xc ...
- ASP.NET Core 优雅的在开发环境保存机密(User Secrets)
前言 在应用程序开发的过程中,有的时候需要在代码中保存一些机密的信息,比如加密密钥,字符串,或者是用户名密码等.通常的做法是保存到一个配置文件中,在以前我们会把他保存到web.config中,但是在A ...
- 开发环境安装时为什么要设置环境变量?
文章目录 前言 一.什么是环境变量? 1.Path环境变量 2.用户变量与系统变量的区别 二.配置JDK的Path变量以及JAVA_HOME变量 1.配置JDK的Path变量 2.配置JAVA_HOM ...
- JDK配置环境变量时误删了Path环境变量么办?
这算是给自己开始学习java的一个小总结. 首先是下载JDK,我想大家看教程等都会,我不过多解释.给一个我认为不错的链接,适合Win10系统. Java 开发环境配置 | 菜鸟教程 之后如果你在使用过 ...
最新文章
- 关于linux系统下文件压缩归档操作命令略提
- Servlet/Tomcat/ Spring 之间的关系
- 无重叠区间及用最少的箭射爆气球
- 详细探究Spark的shuffle实现
- jsp input maxlength无效_出现这3个现象, 说明你的孩子在无效学习! 家长们: 原来如此...
- javascript中的Date类型
- 【写作技巧】毕业论文的目录和正文有什么讲究?
- Android驱动开发第一章
- ssm启动不报错_搭建ssm+maven环境,启动报错,说spring监听无法实例化,求解?
- 新兴IT企业特斯拉(七)——充电先行
- php微信h5支付对接流程,微信H5支付接口开发的流程与常见问题
- 基于加速度计与气压计的三阶卡尔曼滤波计算加速度、速度及高度
- “看来少宇这家伙身上有着惊天的秘密啊
- 《开源安全运维平台-OSSIM最佳实践》将于2015年底出版
- 用canvas写个接水管小游戏
- java多线程并发之旅-34-性能与可伸缩性
- 【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程
- php只获取年月日,php怎么实现date只显示年月日
- 如何将STP文件转换为CAD文件
- 亚信Internet中国
热门文章
- 史上最全的Angular.js 的学习资源
- 软概(lesson 2):课堂测试
- SQL JOIN连接分类[转]
- MyBatis总结七:动态sql和sql片段
- hdu - 2586 How far away ?(最短路共同祖先问题)
- Comparison of video container formats
- jquery特效(1)—点击展示与隐藏全文
- Electron - 创建跨平台的桌面客户的应用程序
- 复习Javascript专题(一):基本概念部分
- 【跃迁之路】【599天】程序员高效学习方法论探索系列(实验阶段356-2018.09.27)...