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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6447|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录4 a/ ]0 n& E( V9 g# J, e: Y' e% a
. x8 E) g8 H% i( V, e/ f3 j

    5 P+ i  d$ ^! Q
  • 遇到的问题
    2 P. s" k, r$ B1 C5 n7 h0 k: U% G
  • 解决方案
    , j/ T/ u4 _$ }' b4 Q/ p# N
      , W# P6 c! z# z# Z
    • 修改 .csproj 文件0 V7 Q: H2 }2 R% g2 {
    • 在 FolderProfile.pubxml 中添加 EnvironmentName( R# o) z. [# Z' p8 U& D3 w
    • dotnet publish 时添加6 v/ y- m, |! z% e) s4 E
    • cmd配置8 h& b) t% x1 T& H
    • web.config 配置! {7 F8 J/ a" U1 g5 `

    # _! K0 y+ i$ j: B9 N8 P$ W
  • 总结
    1 n& V5 h8 e, Q) l
8 p$ y5 R4 c( u/ p6 K$ F+ T8 ?0 y
遇到的问题* f- S1 G6 `2 ?3 p" c! y1 b

; R/ I. n3 ]% R+ G当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。+ d. N, L: ]; U4 J$ q; r5 j( i
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
$ O9 Y! ^* X# Z3 K( E4 H% N
       
    % N% [5 `' R/ B
  • windows settings    3 l& X% I- W7 Z3 j1 I  `7 o" f" V9 x
  • .pubxml file   
    ( q, ?, q9 V8 |8 @( V& g* Z
  • launchSettings.json    & t+ `9 w+ V$ A8 {8 H- w4 N
  • project.json* X) ]. Y0 ^( |7 Z3 W" V
) j, e" g* d; W' |5 |$ B
解决方案/ R6 D1 G! N6 m; _1 P
6 Z0 j1 g; [/ W; K% N# C
有下面几个解决方案。
/ }9 {/ j" w6 h' j' u$ X% F: V% @" L$ H' j1 W1 c+ X2 P, O
修改 .csproj 文件
* v8 ^( ~* H' ~6 G

  r# D! Z$ R& n+ v  B8 `
9 u. Y4 X5 N! h4 C可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
5 U  g5 \+ q  W; V3 D- u% k

7 S& s# P' p! U: p+ _  z5 u" p2 `! X
! [3 o" `2 M& g$ ?) _3 F7 Y; ?可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

& u6 m+ u, O6 @' e. d& W3 p
; |) a4 V8 u4 b4 B! ]( q) Pdotnet publish 时添加
& _0 a4 @: }  U, D! ~2 U

6 K. M" n9 C0 \6 E/ ~+ X  `+ {1 i* t' T# z; ]6 I7 \
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置+ a+ U# z/ ]1 s! ^4 Z  V* n" N
, H) n' E; [2 ?  p  w8 ]) |$ _  @
Command Line : setx ASPNETCORE_ENVIRONMENT "Development"
( j; q+ [& W* N; b7 y. k) q8 p4 \PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"! L6 s- n/ ~) U1 l; n" K

8 U, t: W* t- Nweb.config 配置
" q  }% q+ m$ m% {. m, k& z" O( Y9 E% h& K( t
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结
( e' S* u" G+ I" N- e* A. B/ N( y2 o; m; c+ ]6 w& b
* [: S$ Y+ ^- I1 T8 r% @
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 3 s, f" I5 L0 e
来源:http://www.jb51.net/article/209488.htm+ ]$ n* {4 F' S; {7 L6 ?
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-17 16:47 , Processed in 0.037506 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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