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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6408|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录
5 G. E" W( Q, z1 M3 o2 X* f" |0 y4 G# g5 y: r& s
    ) u1 |% m% m" q3 R3 l4 [
  • 遇到的问题$ g3 @% }7 K* h/ j
  • 解决方案
      i' ?8 Z& A, B( f7 L( H, ~1 K
      0 N% k8 V, O2 w3 h* n7 {# _: u
    • 修改 .csproj 文件
      + x# x% ]' {% B+ H$ l
    • 在 FolderProfile.pubxml 中添加 EnvironmentName/ U" U8 e$ `5 V! n4 f/ N4 ?
    • dotnet publish 时添加
      % g- @$ y- M$ u1 n9 J" V' @4 S& ^
    • cmd配置$ o" V6 n- B" E# S) E: r
    • web.config 配置, x0 I1 m; Z9 j/ a
    ) U! v  D% B3 K: M; {7 k7 w" n9 I. o
  • 总结9 z0 u2 M, H( a. t* g4 i
& Q, O+ Z4 Z6 o5 n
遇到的问题% C5 v( F1 x3 S3 S

% ~8 k1 K! g# h9 m( `! }# e当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。4 j( Y5 M3 a5 V5 R' f
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
9 r/ W( B6 [( s5 I  V9 A" w8 |
        ) T8 G8 c# n3 S! r$ h6 g* f
  • windows settings   
    , N, P  G) j% m% F4 C, `# s
  • .pubxml file    9 }2 @; x/ U* L% L% w
  • launchSettings.json   
    # H" Q0 P# ?0 j, |% _% r
  • project.json
      B0 j, a+ E; ^0 S, V' f, S

/ _+ }3 Y* S* U7 o解决方案9 e. E4 ?7 g2 {) @

) {0 v; F, W/ c) L有下面几个解决方案。
0 |# E" i( b0 Z% z) d% ]% \) G; K7 m8 s0 |0 b) ~( }* p9 V
修改 .csproj 文件: f* z6 d7 D+ ?2 O( n6 q
; ^( @) A3 O' g

+ G+ y0 G# k, v可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
, |: _% p+ q6 \4 C. a

0 i9 K( ]! A9 ^9 V  c8 M8 |; L3 e# w
8 A( t" @9 F! \可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

( N: ^+ P; y1 W4 |% \0 S0 P- O$ I( R4 [5 {6 U
dotnet publish 时添加8 P$ [# Z% p* o* u) V1 f0 n0 M

8 _/ S" j( W. e. z# g6 k- W6 I& m$ O" e) c0 S- Z/ o% E4 N
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置9 a* u* S6 `) C

* ^2 X" {5 |1 YCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
2 {2 I4 g" e5 PPowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
6 k" I! d4 [1 a% {7 m
, w9 Y5 l3 c8 _; \0 U8 ?web.config 配置
3 J# D, f1 r2 |1 a* i! G1 k2 H. _1 B) }4 `+ x0 c' e
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结
2 |% y/ k8 C4 F4 W% |  _
/ _  ^2 H6 K; v! a. X# ^2 \6 P! F$ _0 y% T
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 : a6 e4 o2 y7 t- X, v0 u+ G( r# F0 [5 O
来源:http://www.jb51.net/article/209488.htm
1 z0 K4 D, C5 g) y# |5 J免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-20 11:12 , Processed in 0.039046 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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