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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6473|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录
( f! l# J0 z1 U& x0 [% |( B) d
7 i, S7 n; Y7 c( {) d
      _2 v. ^3 w: H( N6 R3 ?. N5 t
  • 遇到的问题$ Q6 g% {; s- O; r+ ?' y  Z
  • 解决方案  L- |2 B7 K% `1 y
      9 s  p" ]8 w, P( |
    • 修改 .csproj 文件6 r0 Z' X: H' o( Q
    • 在 FolderProfile.pubxml 中添加 EnvironmentName
      1 u' S( |' \" w% y) E
    • dotnet publish 时添加
      9 d* `+ z3 ]) Y! T! Q
    • cmd配置. p5 z7 D5 x: b. o% K
    • web.config 配置
      9 q) |$ s8 A9 Q: o
    ; ~- @9 b  X5 [. ]+ j  D( W
  • 总结: ~4 p( c$ D3 i1 D/ J
  g% d5 j# D5 a0 e. j# m( b
遇到的问题( {4 g+ k' X* G; c

: [2 n, Q6 }- Y% U* i当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。2 m" C6 Z, v7 T$ a" x5 A) Y
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
4 d+ B6 S: P& r
        # ~2 ]* |8 m8 z3 S# r
  • windows settings    0 A% f' ]0 r# X3 h- ~4 J; S
  • .pubxml file   
    / {  v, m) d2 K3 ]
  • launchSettings.json    ; F" O3 N, _4 Q
  • project.json
    : ~% E* {# ~' E( T, H$ s
+ ?* Q) s# V# K5 `& j
解决方案( Z4 g% v- y6 i6 W5 N

' t7 F$ T0 {, C" D; m8 }% W8 }有下面几个解决方案。) Q, A! e4 m0 t& J; m

2 v; R, R5 y+ D修改 .csproj 文件. s9 p+ a! K3 e4 D  c

) n2 J0 G3 K, I$ c4 t: G& T
$ x8 X2 R: [$ G& O) A可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
- i  e: L2 \1 s, [

/ s  {* Y" k7 C3 B1 L0 [# B1 ~
( `' Y( X' E/ p  H  E4 z" O可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码
9 L4 T; K2 ]8 r

+ p7 _# e+ o! A# }! P4 ~+ Y8 u8 ?dotnet publish 时添加
9 }& Z' Z$ R* C" }
# M# ]" I6 M# n5 @6 ?
  }" K" c" W/ i2 Y' G6 n( L1 s% Y
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
* c) g1 g: j0 L9 C/ w0 H
- C" e' S+ ?6 m, C/ H/ MCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"* T9 T9 Z/ b/ ?4 I' v2 O
PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"0 ?) W7 s! [+ T$ E) D4 M& Z) A: J
& P8 ^- P/ j6 G/ A7 n" y
web.config 配置7 S3 b/ w& A. A/ P- X
* f/ B8 \) i* C) q/ ^$ k4 u
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结
' V4 T5 `  C$ B$ k) T2 d) O
; y& u# v+ c% r& Z+ l
9 }' L7 I5 r. `7 F% C+ K: f: L相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
& [  z' P/ }# M8 s, ]& Y' ]2 ]/ H来源:http://www.jb51.net/article/209488.htm
3 p! g$ |2 ^$ A. e免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-16 12:03 , Processed in 0.040102 second(s), 25 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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