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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6449|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录
) S+ g  Z" j0 _3 |% X
% A) A) C4 S/ m( Z; u' v5 i9 H
    * ]: r6 \& J+ P& g
  • 遇到的问题
    6 J$ h, U8 I8 @9 d
  • 解决方案
    * ?$ [' s9 h2 h; s3 z0 o% e" C

      2 l! p2 J6 M2 Z, e: F
    • 修改 .csproj 文件
      - G! T: O4 Y0 ^3 I; D
    • 在 FolderProfile.pubxml 中添加 EnvironmentName7 `/ _8 b* v0 j8 x" ~, k+ p
    • dotnet publish 时添加% s  T3 {! d' [. k. Y
    • cmd配置2 R9 r2 t7 M: z1 I
    • web.config 配置
      4 O) u* z( W1 W- _* H
    9 N% Q* E. ^0 Q1 ]& r
  • 总结
    3 G7 O  y! ^8 h- i8 `( m
" j# d( w- z0 j/ F* `2 T' [
遇到的问题
6 q* X  q. S9 E( N: Z# v8 `# F3 x- D% B7 W
当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
, m- D) t, z% _. W请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
8 I% o) c; C/ y' r2 ^# ^4 S
        ; a5 D2 ^2 F9 p3 Q
  • windows settings   
    9 q& R$ @* h* ^0 x
  • .pubxml file   
    ' Q5 N* @5 w0 D
  • launchSettings.json   
    6 E5 |6 p- }: U3 N& B
  • project.json
    , Z; _# D) n% \, }9 r1 ^' f
8 Z  i, @% ^/ G  e" F
解决方案' c. p6 H( z# s! m. k7 N
9 o7 ?7 C- D- {
有下面几个解决方案。1 l, e& A% r# v* [- K

  y- @5 [5 }% p& B! D2 L. z修改 .csproj 文件& N/ d+ {/ h% c, ~4 J9 ]% e
- q9 j( h: B, J# }
0 N3 h9 L$ x  Y& {# D. }$ W
可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
$ D2 z. }+ {8 [( N+ z9 y2 I7 E% u& e% n
% T. q" s8 s- Q2 g. P1 {( t  A

5 J6 K5 e' I/ v" e6 |可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

6 f5 V7 T. e' g3 O8 m& }9 H6 W8 ~
5 r8 k) Y, M' k( B' t  adotnet publish 时添加
: c* o' K" o( L& Z/ J

1 L" X% a/ y" f8 \+ f- P  c
3 M! c4 O9 m0 k& g在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
$ q) ~- o$ E, W5 {- ^2 x
( J; D! U7 c" R2 m( @  Z, |3 fCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"6 d+ c- Z3 Q3 V. |( }) ~7 f+ e
PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
! r1 W' ?* P! K( {# n0 W$ X8 z- v2 {  O: w$ O
web.config 配置9 @: F# j$ [# d7 f* s8 D

$ a: F. G! L; k# H可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结1 A7 {) r% |8 J5 l% j
, M$ q5 f; T6 u0 ~# \

1 _) Y2 j3 u$ h, B7 q相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 ' j* @2 G$ h8 L7 }8 r( h
来源:http://www.jb51.net/article/209488.htm7 g! u" j& r8 g4 X
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-17 17:50 , Processed in 0.042735 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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