|
|
目录
. V: B- O: o& U1 l3 k) W- |4 i0 g% u
; h' m6 N" N, m* }1 Y8 ]% ^
- 遇到的问题
/ F1 S4 T- m& ^- E - 解决方案
4 t% w7 j: n% V/ E) ?7 Y
% U; X) |5 r; V9 i- f( R k- 修改 .csproj 文件- r& O1 t) y2 b: N8 \ L/ U
- 在 FolderProfile.pubxml 中添加 EnvironmentName
_$ h4 D4 o+ v& F* Y+ Y - dotnet publish 时添加
& Y2 C- |1 R2 Y - cmd配置
& V6 m: g3 R5 o) q# b- ?6 p - web.config 配置
3 v; o2 b x. M* S0 N
1 }+ b$ `+ S( g* q$ T* X - 总结
; ?. n7 @* l) r) F" I* i6 u , P! \! a, L- b. O, d
遇到的问题5 U) w- K1 ~8 U
5 T, A! ?5 {2 t4 t# m4 z3 @( C6 J当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
$ ?# B1 v" [9 u* P- B* Y" H# Q# }请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
7 C/ b- u4 }' \' I6 D& A# S4 M
8 i' s" o7 G# }: |( Z- windows settings
: R: o6 }7 G) E, N3 i4 q# x - .pubxml file
- s3 N) w4 Y8 R' o/ E4 [, a U - launchSettings.json
: E p* o) w) n; f - project.json( O+ K+ l3 ^/ W/ C+ d) |
]; t; `# |- j" i- S" B+ g
解决方案
5 [5 _: E: j0 T S) J3 O' ?7 b% v ?. Z9 L, o, o) Z
有下面几个解决方案。( ]( D* v: B, K0 B) K3 s4 }4 o7 r
! }3 ~7 v3 l% ~" n* o0 r @4 B修改 .csproj 文件
% m$ A. G% P9 p: p* j- Z- F9 M2 N5 V0 ~0 c* ?( {4 m( F3 ?
: J; C/ g" k6 ]' u" c) f9 v5 i) C可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName
1 M& s' U+ A7 x+ _! N* z t' d8 `+ _- \* M' ^$ X" C1 E
, O% @8 R# S% t可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:; f. X& _% B, G
* o' X7 N% S. M/ g5 X. Z* ~* zdotnet publish 时添加
5 U3 H* M1 z! z1 K9 _8 r% Q
# z1 r% p& D! ]- l1 ?: m/ K+ f# O, k" M; w
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置4 n+ y# O0 U7 K# L8 n, I
+ r- M# y! B5 W" Y- |' g' eCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
, r, b/ U3 v2 z/ v! U6 A, V/ LPowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development"
2 H+ D. m% b! ]0 w5 ^
# v' E" ~$ U% S( H5 n0 Bweb.config 配置, Y# k3 g: ~( X/ {" \4 B
$ d2 J5 g0 I6 e# U" P$ s
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结) S% B) w- m1 [& s D6 c
9 W# q& d5 c' G
: @, O! j8 N4 _& u/ \# E0 |相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
+ o& l) n) K! M( H来源:http://www.jb51.net/article/209488.htm
# U" }- ^3 d9 `/ E免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|