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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6421|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录9 o1 Y) w; |* r8 X% ]" q
5 ^9 o5 o( |( P, P9 y* u9 D

    ' }% s  ?; n0 z- b8 c( `& A( G# F
  • 遇到的问题7 T9 I  S, F% t, N% ?
  • 解决方案5 i/ v& H3 I" M

      % P3 i4 g" b0 ^  F) l+ J4 L
    • 修改 .csproj 文件5 i* {1 f/ n+ o1 \
    • 在 FolderProfile.pubxml 中添加 EnvironmentName* c+ \) D* G) D. X/ {/ g
    • dotnet publish 时添加
      : x4 [; W. U, F% {. e" g
    • cmd配置+ }( O$ M) Y* S9 O" N1 Q
    • web.config 配置
        q* h7 ~" y  r; Y
    ! J# _* u1 {& Y2 j
  • 总结
    3 a+ P  `: i: l$ u+ `3 [+ _
- e7 W3 U) K- W
遇到的问题
* h+ N" u( `/ x+ Z" g# b  b) v5 m  L1 H% f9 d2 N
当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。- L6 e* ^4 @/ ^2 p5 i( Z
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
8 ]/ D7 Z6 R8 [5 e* t
       
    7 p( x2 ^. k" @
  • windows settings   
    2 ^( D$ B0 X0 G6 a! Q0 K0 f
  • .pubxml file    2 h9 {) f6 H' ]- e
  • launchSettings.json   
    3 X  |+ X, ]1 v7 P+ p
  • project.json' e& v7 Q2 u, W0 I4 f" v: ~8 q" p
- B1 J* Z' \, G% B1 B; @. x
解决方案: t+ U* p' g- x, g5 L# y

% y, F1 N" T, C1 [- f: H! \有下面几个解决方案。
% b+ z8 Q5 i8 |6 Z
- R% P( K/ C% k! c" D' M5 w修改 .csproj 文件& v& i2 B( l0 e1 y0 u* T& i; Y

- Z  F8 k3 m  ?8 F1 q2 l- v* @- I. U( R! O6 p$ e4 Z
可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
4 t; g- |; |/ O6 X7 v9 L9 q" {( o
9 t; y4 Z/ S+ e/ s% d
% r7 V6 y  |: E5 j
可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码

* K) G$ B0 ]  E& {" ]7 ]; E7 g! J2 G, W
dotnet publish 时添加7 F9 [. M+ \3 U* e  w, F

7 g; V* I) R# N+ {) f( P# y1 V$ ^& ~
5 C8 N, ]: Z" x9 M% I( E* B4 f在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
+ ?; N5 t: h, v! t! h/ O1 q+ G: H8 c4 ^- h2 _- h' c
Command Line : setx ASPNETCORE_ENVIRONMENT "Development"+ A! q. {3 G" k: u" h/ X6 [, F
PowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"% ?6 u4 ~/ @; L) E9 V. Y8 I

4 |# F6 e  k. B2 Kweb.config 配置) M: Y1 B0 \$ z' ]
! q2 A$ t! F# T
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结
6 [3 X7 j+ t$ }8 q; t% S/ [- q! {5 f/ d* a' g& u
: W; t4 F0 f& g' {7 y& }
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
: o8 x. ]) I/ i来源:http://www.jb51.net/article/209488.htm
; {, s0 Y- t' y8 T. Q& G免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-20 19:31 , Processed in 0.037245 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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