京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6325|回复: 0

发布asp.net core时如何修改ASPNETCORE_ENVIRONMENT环境变量

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录
# J2 F+ }; G0 C* ]; c6 K) j: {( @% U3 z- C; h

    ( I3 X* j/ E4 @2 O$ ]0 c
  • 遇到的问题
      H! w  g# _0 w( z1 `" m7 K
  • 解决方案
    ; U# @+ X8 t$ `( G. [, C
      4 s! B& X6 M7 I
    • 修改 .csproj 文件6 z' C) z( k9 f& o4 H% y2 G
    • 在 FolderProfile.pubxml 中添加 EnvironmentName( x6 [. P( w! p8 m% z6 o- s0 l
    • dotnet publish 时添加; @) H# o' o* ]  l2 i- Y
    • cmd配置
      . Z- f7 @& l8 n: r9 N% Q5 w3 |
    • web.config 配置9 ?6 |& J' \, G
    & O8 p5 Q( V6 c0 |+ X
  • 总结  e$ d4 e4 O+ A; N* n3 s

: F/ o  {' u- g* C( ?( @遇到的问题! p" q- n( t# O: M% a
  t) o* b! X9 q3 [
当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
  D! L8 S" T/ [: i请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。9 H+ b" z& \$ @. M; y  ?
       
    ' f4 e( v9 Q" a
  • windows settings   
    . K4 A  X1 R' {3 O! F  {2 h
  • .pubxml file    8 Y% V/ O( t+ U+ z% J) B- C* r
  • launchSettings.json    * m0 l% `4 \7 J2 t; |& _5 c; a% w& {9 \
  • project.json2 [# U5 |8 p/ Z3 X' I0 S7 }( P5 ]- F, C

. k- X: m( {) Y' `解决方案
8 [* E+ X  Z" O' q' \/ Y& W+ F6 Z- u" ^) d4 v  p/ z1 g* K6 a, R9 I0 N
有下面几个解决方案。+ T' R' c7 V/ I- _
4 L/ z/ y9 P" N  D
修改 .csproj 文件
. q  u! v- S# ~7 {. n: T

7 w0 B/ c& u% T  q3 l. B# ?  I$ I4 e- c( B- ]
可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName# x+ F) P% A9 H
9 u6 e( Z6 Q8 ^
8 w" g4 y8 |, K( T( w" s8 A4 F
可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码
) b$ L& a) R3 k& b8 G7 K: j" }# Y

2 I% ]  x3 J1 f3 Y5 [2 A* hdotnet publish 时添加
: E9 _/ a; m7 g6 n: g# X+ i4 d
' J. n9 [& w* b

9 c7 e4 }8 p. E$ Q7 R在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
, t) n& Y: p! q* S
' [4 r$ k. t3 ?Command Line : setx ASPNETCORE_ENVIRONMENT "Development"! ]7 [: _. G+ e/ j
PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
4 ^' e9 J* W7 X% b# `
8 Q! y3 X4 O. F7 sweb.config 配置
2 p8 x: \( l- Y. P$ n( A
, K. u5 O. _' X# K4 Z% A可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结& `" P+ X3 L3 M$ u8 C8 e! O

( N) k5 W/ }% {2 v( \$ F- a
! t+ {  i* X  E  @6 q/ }* E- c8 C相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 ( C% s6 b$ C9 _% |) `# g8 F
来源:http://www.jb51.net/article/209488.htm
) ?5 C% T( Q  _, @( J免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-8-28 20:02 , Processed in 0.040916 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表