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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6355|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录$ F( C& q; v9 E) F: F

. j* |) f+ A9 V  v
      G3 o( s" y& g6 t3 @
  • 遇到的问题  I6 [7 s/ b* b) K2 g
  • 解决方案$ J7 H2 x9 [: E* Q
      % K5 [9 x7 N1 Z; ^7 t
    • 修改 .csproj 文件
      . i- k- k: a3 h
    • 在 FolderProfile.pubxml 中添加 EnvironmentName6 w2 R2 j% G) o' M& T( l
    • dotnet publish 时添加/ _$ v& V- E  U8 R) K; C
    • cmd配置  l4 E  l. k1 g9 X/ s
    • web.config 配置
      * W' Q% y, o' ^8 s3 v9 B7 r# \+ V
    2 y2 k4 g; A+ b0 k
  • 总结9 Z# y( b9 o+ v. L: q

; f) K  J7 u8 a$ v0 V遇到的问题
, ~$ Q1 }0 |8 J: {
5 N& e0 Q9 j7 f- F! a当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。# D* G  J4 |2 z. R$ I# f( I
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
6 u' E1 Q. d# }0 T. }: W/ w
       
    : D9 T+ t! |& b. S: T) {4 G( j4 ?
  • windows settings   
    0 R! P' t. x3 R, W; E, `4 ~
  • .pubxml file   
    7 w* p8 W* z# H2 x2 h! Y7 G
  • launchSettings.json      c/ D# R4 m8 V: a5 b
  • project.json
    & b" _: Z" J5 N# `  P6 T& t; [
% Y; O2 A% m& W) `3 ^# R4 P% H
解决方案
% Y# l1 {2 d9 ?* A, M, i3 a$ g0 C/ {
有下面几个解决方案。
' {2 j1 v0 ~5 b/ _
7 B$ W  }4 ~! F9 Z4 T7 h- ]修改 .csproj 文件) M- m. n/ z  ^. Q* l) J
# c; ?2 ^6 _8 a; i* O

. P4 ?3 z% p1 x3 ~" f6 W/ W可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
  L7 K" Y( `& w' z" P

7 y& j" g  ^1 F0 i4 C/ b0 E3 r7 u2 D" h
可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

: Y: h* L, m- T+ ]+ r9 G. ]5 i4 a, L
dotnet publish 时添加
# @7 B. {* s, C7 q( w+ |

$ S9 Q5 k7 ?6 w+ ?' ^# \% C2 h  g" h) o# W3 ^5 }: u; U! l( m) H
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
7 k! t( M4 ~! `& R; Z5 ~
' \+ ?! _( O# i7 QCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
8 O, ^# L4 F1 Z) hPowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
5 l  Y$ E1 [3 c, X; M! a
  a8 }0 I5 t" E* C8 ?( xweb.config 配置8 A. e+ n' D  b$ H
! h+ }: ?6 p" d- H" c2 Z
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结
! }3 e" V5 \. y; r# j4 P. c4 |8 X, |
; z3 A7 q- q, ?; _9 ^  I1 P/ b
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
! _& d$ p) w4 x. m# V# U2 p3 [# v! F! v来源:http://www.jb51.net/article/209488.htm
4 t9 @" X6 [& H免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-29 22:41 , Processed in 0.042196 second(s), 23 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

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