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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6492|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录7 F- J! L: `& W  J( b7 x' T( a1 H

- {3 ^4 _9 b! ^7 U1 z# V
    2 Y$ O6 l: u7 E9 j5 ?6 }; m
  • 遇到的问题
    & p7 ?8 B; t% q2 H* Q- L
  • 解决方案
    " F) l- w5 Q. \- M$ s4 D

      6 L/ C  T2 z5 ~  b
    • 修改 .csproj 文件
      ; ]% k0 z) I: U+ ]' s7 P
    • 在 FolderProfile.pubxml 中添加 EnvironmentName  @4 u7 S  F+ V, n
    • dotnet publish 时添加
      7 j/ ^: T* K/ l: {0 x
    • cmd配置
      . b# H2 m! ?  t9 n# r
    • web.config 配置
      - G/ D2 K( ^5 t  U

    2 ^- @7 m2 t4 \4 x, g& O! g
  • 总结
    ; X+ C# f6 A- A4 `' f  Q" e

- z1 U* }- I+ ^+ `遇到的问题
  G* i7 Z6 B% \- r+ a: S4 o7 F& @* g9 x
9 W1 Z- o: ?% i9 D8 R1 O; a& {当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
+ K8 H* F. ]: f1 h请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
  y$ g! w" r  r
        7 x0 l4 h; b' K0 f% c& x
  • windows settings    1 r& `5 X* D9 i9 r& O$ ~  u
  • .pubxml file   
    / Z) g6 d0 W0 x) G, g
  • launchSettings.json   
    9 D1 A, ]5 ]" C8 f8 s
  • project.json
    6 x4 H, [  L: K' B
7 d+ o- F) Q, ]
解决方案$ [2 Y% H: l& x* i0 z) {' `" T/ {

# r+ ?* q- {8 o( s' l有下面几个解决方案。9 F  e3 q1 z3 F" @" h  M

3 W0 K  D$ r9 _# S( _6 p修改 .csproj 文件
! Z! O  s8 x3 H- P5 O
- a- C% D& R+ C, M' e
: B1 c. _' X" r. }
可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName+ j+ Q; F  [) I
6 b5 \: G9 T* i. D- @* Z" F( }3 S' Z$ ^
3 u: C3 \, ]6 ]
可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

' v  P  O% _8 a+ e( W) n; h, f' O5 z& d! L
dotnet publish 时添加4 a" t. ?7 B% V+ E2 F7 e) m
1 [! {% c% W% L" d3 \

9 h) S2 n* t* X) A在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置' d4 R2 Q7 _# W% q. o

  c; v+ j. S/ W% O5 HCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
" D' W) h+ q7 v5 Q) Q/ q& EPowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development": L2 e- x# \8 o/ j. b4 [6 A0 f

% F% [- [& b) d0 P. L8 }1 fweb.config 配置& z7 G% g9 P0 k

6 d/ R5 Z" h4 u+ Z# D6 ]可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结0 t  j8 T% y: A0 ^3 V

8 B5 [1 g- T7 D5 v, X2 F9 h, \8 E8 |( h1 B' R( Z
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
/ j- Y0 b8 e  P2 P6 S5 T! \" z- L来源:http://www.jb51.net/article/209488.htm. q' H0 L$ ]: @; x
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-23 17:52 , Processed in 0.044169 second(s), 25 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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