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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6410|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录' T* g7 g5 d* I( C8 r% [8 W: W
+ ^5 t' i0 v6 L0 I

    " {4 p, B+ c4 m6 ]% [3 d* \
  • 遇到的问题
    ( F+ {8 R* n" f$ ~
  • 解决方案7 j6 x, J5 \& ~8 s0 `! i
      , a1 |2 e8 D/ K/ c% b3 M  ~& l
    • 修改 .csproj 文件! U0 Z3 N$ g; ~, x5 b2 x
    • 在 FolderProfile.pubxml 中添加 EnvironmentName
      ; a$ j( R' F9 F- }% B9 q" p: U
    • dotnet publish 时添加
      : l' e& g8 H* H3 o3 q, U
    • cmd配置2 v; A" Y# d6 u8 \+ r5 x
    • web.config 配置
      8 z, P+ G- J, l

    . c9 S7 _. q/ U
  • 总结# t# p/ P% M0 x3 z0 i3 b
* p- [- B0 Z. t' \' E
遇到的问题
& i- p# D7 u3 K1 G1 D. S
$ |! E0 {* u8 Y" Z8 ^5 s# S当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
+ R9 D+ [& j9 n7 r请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。* _# ~7 A8 l6 Q! [7 T2 a4 Q" |
        : R) D, c3 [( N/ p; [( U$ y
  • windows settings    8 H0 l1 f* C6 g) g9 T
  • .pubxml file    5 F6 Q7 u8 ~) {1 y( Y! f# q
  • launchSettings.json   
    . y, C  ~0 M  ~8 q. ?
  • project.json5 n! h! X0 T( [. r! i8 g" S' y

: {$ i8 C( F) G解决方案/ f0 G' Q7 X. N) o! R  D& ]

' j- j! E" `8 }2 i' Z8 w4 I2 b有下面几个解决方案。$ B* d0 d' ?8 O! {
. {, }2 P4 m6 B5 \; f( E3 o
修改 .csproj 文件6 D4 h# j# d  i+ j8 l& l" j
: n0 L$ t1 q& o7 v' b! h9 `% d
3 r8 T4 C0 j2 L3 ~$ y# X4 k2 |
可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
* W2 p! ~5 I2 B) S4 s6 w* V+ k

+ |6 s9 D+ j# c* j7 B
; o2 N5 y( O2 a6 Q: i0 Y9 Y% n, d( j可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码
/ ^: f) H7 ]) \

5 j( m( E4 b% ~dotnet publish 时添加2 Q1 d( z' x; y7 k7 M9 z; x' Z
% _% l. S* ^. m( d$ Z
) p* @' t  x' u
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
* Z3 k8 s. r/ n0 m
; T! c' S# E& x) S  ECommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
- E" c5 w/ ^, x4 n0 _7 a' nPowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development", X  T2 F, i' t/ [4 ~) F$ P- L! ?$ [
: t4 E* F% p* b) V5 y3 z+ w8 {4 _
web.config 配置+ ^' P# x6 y: f7 {! {0 p7 u1 K
) Z, G7 a0 j+ G7 }4 y3 X9 O
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结7 N  B# u% v  R" b9 Z; ~3 z% F
; F/ c' x' |, y- [- J, k/ Y  B+ P
( n0 m' t1 {- I
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
. S: S2 R% {" T8 x来源:http://www.jb51.net/article/209488.htm
9 h. n1 h4 a$ R免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-20 12:49 , Processed in 0.038921 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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