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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6472|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录
. V: B- O: o& U1 l3 k) W- |4 i0 g% u
    ; h' m6 N" N, m* }1 Y8 ]% ^
  • 遇到的问题
    / F1 S4 T- m& ^- E
  • 解决方案
    4 t% w7 j: n% V/ E) ?7 Y

      % U; X) |5 r; V9 i- f( R  k
    • 修改 .csproj 文件- r& O1 t) y2 b: N8 \  L/ U
    • 在 FolderProfile.pubxml 中添加 EnvironmentName
        _$ h4 D4 o+ v& F* Y+ Y
    • dotnet publish 时添加
      & Y2 C- |1 R2 Y
    • cmd配置
      & V6 m: g3 R5 o) q# b- ?6 p
    • web.config 配置
      3 v; o2 b  x. M* S0 N

    1 }+ b$ `+ S( g* q$ T* X
  • 总结
    ; ?. n7 @* l) r) F" I* i6 u
, P! \! a, L- b. O, d
遇到的问题5 U) w- K1 ~8 U

5 T, A! ?5 {2 t4 t# m4 z3 @( C6 J当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
$ ?# B1 v" [9 u* P- B* Y" H# Q# }请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
7 C/ b- u4 }' \' I6 D& A# S4 M
       
    8 i' s" o7 G# }: |( Z
  • windows settings   
    : R: o6 }7 G) E, N3 i4 q# x
  • .pubxml file   
    - s3 N) w4 Y8 R' o/ E4 [, a  U
  • launchSettings.json   
    : E  p* o) w) n; f
  • project.json( O+ K+ l3 ^/ W/ C+ d) |
  ]; t; `# |- j" i- S" B+ g
解决方案
5 [5 _: E: j0 T  S) J3 O' ?7 b% v  ?. Z9 L, o, o) Z
有下面几个解决方案。( ]( D* v: B, K0 B) K3 s4 }4 o7 r

! }3 ~7 v3 l% ~" n* o0 r  @4 B修改 .csproj 文件
% m$ A. G% P9 p: p* j- Z
- F9 M2 N5 V0 ~0 c* ?( {4 m( F3 ?

: J; C/ g" k6 ]' u" c) f9 v5 i) C可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
1 M& s' U+ A7 x+ _! N* z  t' d8 `+ _
- \* M' ^$ X" C1 E

, O% @8 R# S% t可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码
; f. X& _% B, G

* o' X7 N% S. M/ g5 X. Z* ~* zdotnet publish 时添加
5 U3 H* M1 z! z1 K9 _8 r% Q

# z1 r% p& D! ]- l1 ?: m/ K+ f# O, k" M; w
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置4 n+ y# O0 U7 K# L8 n, I

+ r- M# y! B5 W" Y- |' g' eCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
, r, b/ U3 v2 z/ v! U6 A, V/ LPowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
2 H+ D. m% b! ]0 w5 ^
# v' E" ~$ U% S( H5 n0 Bweb.config 配置, Y# k3 g: ~( X/ {" \4 B
$ d2 J5 g0 I6 e# U" P$ s
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结) S% B) w- m1 [& s  D6 c
9 W# q& d5 c' G

: @, O! j8 N4 _& u/ \# E0 |相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
+ o& l) n) K! M( H来源:http://www.jb51.net/article/209488.htm
# U" }- ^3 d9 `/ E免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-16 12:01 , Processed in 0.041388 second(s), 25 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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