|
|
目录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 中。在 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中添加 节点配置你需要的环境变量,如下代码所示:# 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 发布项目时,可以在发布参数中指定 环境变量。- 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 节点,如下所示:总结
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免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|