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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6491|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录
' v; a7 T) Q: M+ ^
) i! ^% u0 {6 j" d8 s. t
    ( \/ f  O) r, M# x" @: V; Q
  • 遇到的问题) Y  {$ P$ t7 m, p0 r
  • 解决方案9 }4 a8 c9 G0 p
      7 P) _) M  i  j* E+ Z4 E9 f3 P
    • 修改 .csproj 文件
      ' L# A" E6 q4 x. A/ ]. _1 p
    • 在 FolderProfile.pubxml 中添加 EnvironmentName4 l# n! ?* f' g  e
    • dotnet publish 时添加9 w1 g8 @2 K" U& z$ m1 k$ I7 \
    • cmd配置
      , i6 H; k1 Y/ c, j  F
    • web.config 配置& y/ E- L- A$ y, o! v$ ]& l; \. U1 I

    ( E- c. @* H. P- _( ~2 O$ K
  • 总结
    ' c1 M4 D% K" B( T
7 ^7 j+ ]1 V: @" c$ E: ?
遇到的问题
+ u! j& w& Y/ O+ l. y
+ J0 ~& V! E0 `1 J+ v& }4 D0 {当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。$ \1 n& }; W' {
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
* L% ]& R. A" e# k
       
    + T5 n4 N* F6 P, b
  • windows settings    " C- k! K3 e8 x7 A$ @7 ^
  • .pubxml file    * ]6 ~' A8 D# t. k
  • launchSettings.json    6 j) G# c6 R% ?6 L: h. F. }- b$ m  U1 C. F
  • project.json
    0 z8 I: J& j9 r! }

1 {* ~) J8 |9 S- ^) ^解决方案5 l' ?( a( q, `7 Z4 {

" d" k( X, `+ s! W, d; c# t' S有下面几个解决方案。
& n: c/ i* J( _( |: t, A) k8 n
/ w. W5 X6 S) U, [% Z, {2 G3 e; P2 S修改 .csproj 文件
# u8 t8 ]* P+ w9 Z1 A) b
+ i! G% S5 o3 T( o( C+ O3 ]7 Q

! m" W/ u, M+ p$ k0 A; B可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName, m: i2 ?+ |2 p# ]5 h8 @5 L# I
) g& o( T9 w( i4 U- E# ?+ |

* F+ p9 i. s' ]+ A  Q# k可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码
7 p- A+ y# G5 C7 t2 n, w3 ~
; F& A. l. c+ r7 h" Z' y) j
dotnet publish 时添加
/ g. u9 M  ~# X: k  E
2 D. ~8 t* N# {7 |: w7 p# z9 a

$ n( i' X2 p2 _2 ?' \在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置) O2 \% ^& R4 M0 }/ J. U) P

1 f* _+ A* L- _7 Z/ {" B8 TCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
. x3 c* Z6 U8 vPowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
* N7 K: q3 e% ^/ F! c8 f0 R' h# |0 x2 e$ n
web.config 配置
* a! p7 j2 E2 v2 h% s( z/ V% G- k+ g5 n1 q( @( x9 l# x
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结, H) G7 s, T, N% J9 [

- o1 @& I- y. i, @: `' D* J
8 }  m: \& ?( t# r4 q3 z$ m7 t相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 - Y/ N9 [( A+ Z" ]5 n% A
来源:http://www.jb51.net/article/209488.htm5 f# O% R' {; m) `
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-23 17:51 , Processed in 0.053331 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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