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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6407|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录. X* s' g, W  e7 q1 S5 d* p

1 A2 I$ j( Z5 t

    ( n% V% t5 h2 a
  • 遇到的问题  [* I! J- Y! V! {
  • 解决方案
    1 T/ b- _) x" W" o* D
      0 @/ D* P9 |! h: A
    • 修改 .csproj 文件
      + B( H" ~/ c. `! u, r) l! M+ C
    • 在 FolderProfile.pubxml 中添加 EnvironmentName
      + \' ?1 P+ S/ o  T7 _" G, {
    • dotnet publish 时添加. K4 v7 \/ u$ X
    • cmd配置7 F; |7 S) g. l# F# {) ^/ G$ j
    • web.config 配置
      % d8 _- H: a( R1 @

    ; p3 K) M  O8 {& c5 g, l7 P
  • 总结2 Q( m! K# C# W! `
. ]0 ^3 M, N$ Q0 Q$ {% p' S* j% r( \: X
遇到的问题
1 D$ m6 T* B. d/ x9 u; _, ]0 G6 q: E
. ?/ Q( j# P- F1 l当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
+ \7 ?5 x2 M& A9 A6 a1 U- f, b请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。! ^! M* w: T0 U9 F# f0 O
       
    1 Z7 w) W; b( k4 x& d
  • windows settings    8 f' M3 K, `) W  U2 d5 I( Z
  • .pubxml file   
    ; x+ u* M5 ^1 I
  • launchSettings.json   
    . \* i( }. }. U" `3 I, Q1 U
  • project.json/ k. \, |# `: o5 G: l

- t, c1 k1 C9 x: e- I解决方案( @! C7 ^2 v7 b, H

. J8 ^( \. n) P5 s有下面几个解决方案。
3 k( K$ z% i0 D+ Z- `
: z( l( c6 R, B修改 .csproj 文件; g* n( d0 z8 r6 h- \
$ E' |% x6 x& g3 r2 E0 E% B( X
* z4 E, N. U6 |+ R8 `8 A
可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName: g( M' S1 k& \% V6 r6 P- d& x6 a
. R$ }" x# r! }7 p" \9 X% Q$ h9 I1 ?/ D

5 U! S7 `& _; {4 N, q5 {可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码
( \5 \" C, s# }% y6 i" y% y
$ b$ M* Q+ E+ ?) P
dotnet publish 时添加
: g; C& r: y/ k. n9 Y+ M
* R* G2 T2 O+ K5 `; B$ x

$ I- k& p' T( [  q1 Z1 ]. W在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置# y! y5 w# M. V  |1 d% _

1 w9 A9 a% a) ]( q. NCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
6 K! m# x) A9 ]- i4 j4 W3 NPowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"$ T; U" h7 c5 `) [& m
1 X" R1 M8 f# k2 z6 ]9 U9 s3 I
web.config 配置
3 P9 R$ z$ y; T' `) `
* ^( R2 _' c3 H5 _# o可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结4 G, D  r8 P; Z0 @! d( E
' R4 @) Z3 R* A% e& b
' `1 b3 P% _, |" M& x
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
# _3 C; C0 i% R7 y来源:http://www.jb51.net/article/209488.htm, r$ {8 ~5 h/ M5 a  b1 Z8 H0 ?
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-20 11:07 , Processed in 0.039816 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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