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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6489|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录! j' a9 |) ~. h- R' ~! @0 K
* @/ V$ V+ N% Q8 B
    6 x/ J% m- `0 |
  • 遇到的问题+ r" q1 s! u* z! ]7 F+ K2 @8 v' |
  • 解决方案
    2 c+ a# B7 j- D& c% F( g' H- e
      . Y. V5 N0 p1 Y% a: `( g9 ~! v
    • 修改 .csproj 文件% Q0 _$ b, D! d6 ~
    • 在 FolderProfile.pubxml 中添加 EnvironmentName
      % @+ e/ ?1 I+ y
    • dotnet publish 时添加
      ! f8 K( \7 S5 [
    • cmd配置: O7 R3 y- n; K4 r$ R
    • web.config 配置
      ; [9 h. K; i, W6 d# E: ~
      n* G: [9 r0 p+ ^- x8 g1 \) E
  • 总结
    " l& Q8 l" K% ?: t* q7 ?

7 b' A" x. s% {$ P. d遇到的问题
+ b& ^# o/ P! u/ b, _: a) t0 u4 q
当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
2 U8 C4 i6 [% {" j请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。+ R; i" z0 i+ z) A2 Q
       
    / ], Y; P* ?; I% B+ l
  • windows settings   
    " Q0 E8 H# I$ z( _7 a5 Y
  • .pubxml file   
    2 v8 J+ |! ~/ Y8 A' m* t, S
  • launchSettings.json    + Q% G1 O0 \5 O/ g# ~$ D
  • project.json
    $ G; v7 E, ~2 w/ x  v

& |$ O, R: z+ ~9 @2 A+ C0 I解决方案
  N8 e" B! P/ X: M( y. F2 i, J, r& {/ g
有下面几个解决方案。3 e$ v& ?+ x+ }' |1 Z* U/ t

3 t  C0 |+ u# W. H6 H  p修改 .csproj 文件& X/ K8 R  i- l/ E% c" d  ]
8 D; V4 p1 D' o/ A9 u

; J+ G: u) o# i; F" r( J1 x5 Z' X) S可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
; A" o3 l9 ~3 r+ H( {8 r

: f" H5 ?+ L4 d7 h( n: D: t
8 X  b/ X$ v! L8 B可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

3 Z- l. c2 b: N/ y3 f* \6 c* v4 Q7 G+ a* h: [0 c. e* V
dotnet publish 时添加
+ q& P! [5 P5 n% N% b, `0 b

; d- [6 ~- v4 u0 F: [/ O% V2 ~6 X
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
9 J& t4 S9 @+ ~) C3 [' ]. l, x* p- Z+ f, W$ p) n- `9 F0 u
Command Line : setx ASPNETCORE_ENVIRONMENT "Development"5 ~8 w4 I& V2 I* w) Y
PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
: ]7 |5 ~( F& @6 h! h, i/ E
9 D& |  P7 B8 ^2 @0 xweb.config 配置  P2 T1 g# \5 o# }- K+ @& m# W- W
5 f- J2 B1 g6 H" f, f; d! p/ j
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结+ F* S  c! u% d( C: R! E/ A
, o9 t1 }( U6 M8 B& y3 F

% E- Y" a+ r7 a相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
+ c' j+ D1 s; N, a来源:http://www.jb51.net/article/209488.htm& ^  O2 @$ H4 b" e2 Q" r& I4 {
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-23 17:05 , Processed in 0.072178 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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