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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6419|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录" Z- ?. B! A  M, B
0 f' Y# T6 D( \5 \5 l

    3 n8 @5 v( E0 p) B/ G
  • 遇到的问题' {0 ?7 Z- b! J5 w) A$ ?
  • 解决方案+ h! s- z7 }8 ]$ V" W( N5 }

      . P  N  j. ]  B& Y: E5 A
    • 修改 .csproj 文件
      ! h8 \" e2 M, [( Q8 j2 z4 @9 U
    • 在 FolderProfile.pubxml 中添加 EnvironmentName& F  L; t( I/ b
    • dotnet publish 时添加7 C/ F6 [* M( g3 M+ D  l
    • cmd配置
      9 b! H* o  M4 Z# `4 k4 Y8 l
    • web.config 配置
      ! }+ B# Y  l% V7 \* V
    ' f8 G* f! s/ x, @7 Z& J8 L* S! a
  • 总结/ T) {/ z; P- z- V1 U

" H" V7 [. i: ]1 u& \5 i) k遇到的问题( O2 }; f; s4 |* ?9 T1 @5 @, p  A

5 i  S! F- f9 R; O  n: [7 I, J( Y5 I当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
+ y5 [5 w4 s: w7 d+ o请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
, v8 z& F4 Y1 m1 L2 E# V3 }* M
       
    8 I- Y* K2 O6 [! V
  • windows settings    # Y( H7 V' s7 k& {4 J( e' V
  • .pubxml file    $ l- Q- E1 V4 `9 V# N+ |# a+ A
  • launchSettings.json    4 L) S4 i* u! W+ {, L$ ?) w# A3 z
  • project.json
    1 m- ~8 f4 {3 v$ P: j: p
4 c" ^4 K# C8 X' {
解决方案
1 k- v$ k# x. E  t% ^9 `6 D
4 ?2 l2 ~& I" y  P: O4 F有下面几个解决方案。: x' }! ?% t( ~2 N; o. B* j

8 _* p4 Q7 Y6 d3 B) T6 b修改 .csproj 文件
7 H# c0 V9 n- y" U, x
9 J. X$ h. a9 X& n

0 ~: I; M- m# z& i  {+ v2 d9 B9 S1 g可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
, R5 C  U0 q5 ^; D- r
" I9 m5 T9 y! @, C0 v! }' I) X
1 J" J8 @# U) t% y8 t
可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

6 j; L+ h/ t$ V# V" F
' V8 w+ J$ n4 w% Wdotnet publish 时添加* y  f$ W$ }7 }

7 x2 k- Y$ `' m; q5 j+ }' x- Y& s7 _5 W- m$ ?: M
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置3 u& m4 u6 k8 W/ m
9 W  F( _% A3 u1 _' p' l
Command Line : setx ASPNETCORE_ENVIRONMENT "Development"; C$ c: g2 s# g" P
PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
% S( ~- b( k8 Y# g
( |! r) E, |! g4 G+ y5 K6 V) W1 dweb.config 配置9 D1 p: T* R: c4 k" r, B8 j7 d, w

& e5 ~4 V: E8 q) U可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结" |* y8 Z2 ]" u0 W& I" _

0 `1 ^( C* H) x2 L3 _9 p2 p' p( G4 m  p. T+ \
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 % A8 G# M* E1 g- p( V
来源:http://www.jb51.net/article/209488.htm
3 g% C9 A+ j, @" [( J& X免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-20 17:55 , Processed in 0.037056 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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