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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6420|回复: 0

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

[复制链接]

27

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2021-7-25 20:46:27 | 显示全部楼层 |阅读模式 来自 中国
目录6 p' s5 ?, P! W! ^6 M, @
3 }9 e1 F0 W6 j
    ) r7 {6 e6 C& R- H7 J
  • 遇到的问题
    " ]  q8 M  Q1 y5 h5 e+ F( L+ S; d
  • 解决方案8 r  _1 N7 o+ T

      ) D7 R1 W. u+ V" R1 e/ A. l
    • 修改 .csproj 文件8 R1 {0 d# o4 v$ C2 Y4 G
    • 在 FolderProfile.pubxml 中添加 EnvironmentName! g$ r* [4 C' T# G' p8 {, H
    • dotnet publish 时添加
      ! l& q: [$ T# r; y" D
    • cmd配置
      , X  w1 N% d8 s* o+ P' B
    • web.config 配置
      ' p. M  {2 m7 q/ ]0 W

    3 p% o8 w" a+ f2 z9 Q& e4 d1 _
  • 总结) ?! O) }7 I+ q, Z2 [

$ Y3 G9 [' ]' ]( C* w遇到的问题
2 N1 A* L/ I( g2 i" ]6 T; R" b& ~6 a( D3 Q
当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。7 h$ Z; O/ `) I- \! ~; ^
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。1 X1 z4 S& F; u) B6 g
        3 k# j/ q1 k) [& g$ B
  • windows settings   
    : J  E3 X- |2 l7 ^1 {- N. p, y
  • .pubxml file   
    9 n4 w, u6 f  |
  • launchSettings.json   
    + j+ q5 r# a- {& Q( O3 j2 H
  • project.json( j+ q7 R( m, @. i2 @' ]. k
  ]1 J- G/ f8 A( |+ w. y2 \7 |
解决方案9 S1 b# D! ^. i* N% P0 B
" i& }' w8 L* {' O. y: ^# I
有下面几个解决方案。
4 V9 k7 w. c+ l! x3 E0 S! h( H" t( v. M" R4 S0 ^0 {
修改 .csproj 文件' x% |  h( K# ^3 d/ T% I% @1 Y' g

% i3 Q  s/ H+ D" l
4 }5 e; D- m0 ^/ i2 X% O可以在 .csproj 中增加  节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。
  1.       Development        Production  
复制代码
在 FolderProfile.pubxml 中添加 EnvironmentName
. O/ u+ m, y$ a3 U
; ]: V) }3 m+ O) N

3 X/ \7 c- R; a9 f7 O& G可以在 publish profile中添加  节点配置你需要的环境变量,如下代码所示:
  1.       True    Development  
复制代码
# W5 N- b+ G; y* I% P0 Q2 D

3 H' ^0 @' j# w% A, B5 [" b# Ddotnet publish 时添加
5 A- g* W5 s+ g. B6 `2 S
- Q( ]# K4 e0 v; r+ P
0 i7 T" J3 T; \" d4 s/ ^. M
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。
  1. dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码
cmd配置
  l  [, P' c7 N- `
% b" V5 \; h' e. _Command Line : setx ASPNETCORE_ENVIRONMENT "Development"
: C- `! J  @8 D" h! O. GPowerShell :  $Env:ASPNETCORE_ENVIRONMENT = "Development"
9 ~, z6 L$ [& c2 L- q& ^: y( {7 j7 V3 I" A- |
web.config 配置% N2 s$ H  \% i2 ]: w' n

) N) U2 f/ ]2 ^7 ~) k可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:
  1.                                                 
复制代码
总结
2 |, E: D8 ^2 |( M: o: b" U6 o. A$ R  n7 W( r! o5 H

4 v3 y  a3 x- v& d1 u( C相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 % i0 z; |  e# @2 q9 }5 D
来源:http://www.jb51.net/article/209488.htm
& G( j* D% I8 j6 g免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

×

帖子地址: 

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

使用道具 举报

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

本版积分规则

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

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

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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