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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6324|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录
' |. F" L7 Q1 m; M" N" F
: f3 \. X$ \/ G) _9 m( n0 |

    - ?, ~+ X+ H9 p9 R/ k& d4 W
  • 遇到的问题) V  |  K: E. J
  • 解决方案
    " C' P+ S0 ^6 f+ Z$ \/ \- M
      $ A# b4 h; {7 {- H' E
    • 修改 .csproj 文件
      / F4 C7 x& z( k: j# D9 J
    • 在 FolderProfile.pubxml 中添加 EnvironmentName7 P( l2 ?4 y- a
    • dotnet publish 时添加
      $ ?$ y& n9 j. c% J9 O& ~* N  S& B
    • cmd配置: m' l! O- [2 E/ k
    • web.config 配置6 J; ^5 H- H3 l- L: H) i6 x
    & E# e9 Y. X' U/ q& y. p  ?1 O5 Y
  • 总结& J$ q, l5 q* V% P

6 _% ?* n6 |5 ?& t. R5 R4 a! @: u遇到的问题1 L8 ?& g" F3 M. N
1 t! c0 A4 N: `6 g. }% F. U
当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
, s5 ^4 U7 X; [# o( k4 F请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
0 H6 J6 F7 w8 J
       
    & s/ D/ s2 `+ a( Q7 ~( m
  • windows settings   
    0 X: y- \0 W8 E$ S
  • .pubxml file    $ ?& D* i# B4 D. T* G6 A. V6 n) |
  • launchSettings.json   
    , T  n" z+ A* [1 ]& U
  • project.json" h2 ?3 j$ q6 y: l0 `  y% ~& o

1 j% G3 u& n+ l0 j5 s! x8 X) t解决方案' J* g+ j8 Z8 r& n4 a( m

' O+ W/ O6 h2 ?+ g) d# J6 M有下面几个解决方案。; B, t& J, _2 f9 T+ h
' |9 z& D) d' z# K% a( P: R3 d
修改 .csproj 文件
2 G3 m" R* `6 V

; N9 ]- K6 t- ~! z6 z0 [- I( T
. h/ E9 I+ {) }. {1 Q" c可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName; l  {% s8 W& n* j0 _  Y1 Z
: d) I' S( m- f. x

* \) r! r8 H- ]& X$ P可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

# F7 W) O4 }4 b9 Q2 d# m
5 c: K! |' n7 N& j. \dotnet publish 时添加2 @  W* h& o6 F
$ N# ]0 a: M) T/ j5 F

. h% A0 o& E! {1 }0 U5 ]3 x% j6 O在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
3 l2 g* B; y: r8 |+ s- r: n' Q$ P' M6 w
Command Line : setx ASPNETCORE_ENVIRONMENT "Development"
/ m6 r& ~7 F2 ?PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
# L0 s8 ]( j1 J) [- ]3 D4 a; {( E1 [* v+ H
web.config 配置& u) X0 {; r! q8 C- y- O1 D

9 D& o/ Y* z- Q. C可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结
: e3 F( S$ I. G7 N# b9 x1 `7 y
" M( j% J$ Y, ~, l6 f' J0 f6 f/ i3 V( c% ^7 m
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
$ m$ ^7 ?' P+ N& T4 P/ w来源:http://www.jb51.net/article/209488.htm9 _% y$ m: s, Y% G
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /6 下一条

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

GMT+8, 2025-8-28 15:17 , Processed in 0.037410 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

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