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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6353|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录- Y) `, {9 L# [3 ~
8 n. Q: ?) D7 [

    $ }4 U8 G3 v# T! L# V% q
  • 遇到的问题
    ) {$ ?$ \8 y  J: \) q4 \, h$ u
  • 解决方案! Y, R6 C, c3 m2 F

      * @7 p, H8 m( H- Y
    • 修改 .csproj 文件
      : l4 i5 Y- E, c2 e5 o* L
    • 在 FolderProfile.pubxml 中添加 EnvironmentName4 i1 u% T5 ?7 W5 ?- Q0 f5 r
    • dotnet publish 时添加
      2 v2 h1 @6 p( U( j
    • cmd配置! W/ R4 r% y& G
    • web.config 配置1 [% m* {6 A3 P- j% e/ C
    % R3 ^- A- M* N3 N/ \# U
  • 总结0 D2 o. C0 s; L/ A; E
+ r6 a* w% h1 t! g/ o/ k
遇到的问题
, R3 Q, ?# k8 n/ c
) s1 g; L$ {2 s- A当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。) v/ z5 s  @( c' v0 y. |
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。" x; L6 i1 F  x/ x  G, L
        1 p" ~5 v2 U  \
  • windows settings    8 ~1 [4 o8 q. Y3 S! e, D
  • .pubxml file    ( X3 E# ]  G6 e
  • launchSettings.json    1 U0 k: o( g. O1 X$ F4 o
  • project.json3 B: C8 s8 r. w3 u- t
$ |  y2 E$ ~1 _$ Q5 D
解决方案$ o: h! {; Y' P: x% G( o
0 L+ \: j# l) |% G
有下面几个解决方案。
4 Y' A( Q& r3 T# V
( ?3 N  o: J9 @9 G. q修改 .csproj 文件; E1 c6 A, \0 r$ e7 A+ O) R
) d/ j0 z+ C. G1 P

4 p& j, N6 H8 m8 m7 n& M) U6 S可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
, G0 z4 ^' ~6 E: h
  k7 S4 L3 P$ l# u. q
) C$ A% v: O& L% Y6 }! v
可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

3 m# ~. p6 `0 I3 I0 a4 S5 I: C$ ^* p+ n- S5 ?. Z4 V2 ?
dotnet publish 时添加
9 T1 G( H( Q. \4 e4 K2 ?

: x+ z1 }# k: `' d% q9 r) ^1 ?$ |$ F: `7 f7 Z
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置8 b& ]. v2 H* ]

" j1 v% @" S/ q$ l& `. |5 ~Command Line : setx ASPNETCORE_ENVIRONMENT "Development") b9 t9 ?+ o' g7 p0 j- E
PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
/ L" d! T" A* {& L3 T& N  N4 n0 [0 a& R3 _" Q% A
web.config 配置
( y; d; j+ j+ L) \& t) ^( x+ l6 s) o5 Q  ^% h, p3 a
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结+ x6 m1 }" _% F3 ?8 D: B

- W2 e/ F; c" i* N
/ A0 `" p; ~; i, h, t3 O1 t相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
6 T1 k# g) o7 y/ Z来源:http://www.jb51.net/article/209488.htm2 ?# p' _  G; S
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-29 19:37 , Processed in 0.069625 second(s), 23 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

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