|
|
目录
5 G. E" W( Q, z1 M3 o2 X* f" |0 y4 G# g5 y: r& s
) u1 |% m% m" q3 R3 l4 [
- 遇到的问题$ g3 @% }7 K* h/ j
- 解决方案
i' ?8 Z& A, B( f7 L( H, ~1 K0 N% k8 V, O2 w3 h* n7 {# _: u
- 修改 .csproj 文件
+ x# x% ]' {% B+ H$ l - 在 FolderProfile.pubxml 中添加 EnvironmentName/ U" U8 e$ `5 V! n4 f/ N4 ?
- dotnet publish 时添加
% g- @$ y- M$ u1 n9 J" V' @4 S& ^ - cmd配置$ o" V6 n- B" E# S) E: r
- web.config 配置, x0 I1 m; Z9 j/ a
) U! v D% B3 K: M; {7 k7 w" n9 I. o
- 总结9 z0 u2 M, H( a. t* g4 i
& Q, O+ Z4 Z6 o5 n
遇到的问题% C5 v( F1 x3 S3 S
% ~8 k1 K! g# h9 m( `! }# e当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。4 j( Y5 M3 a5 V5 R' f
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
9 r/ W( B6 [( s5 I V9 A" w8 | ) T8 G8 c# n3 S! r$ h6 g* f
- windows settings
, N, P G) j% m% F4 C, `# s - .pubxml file 9 }2 @; x/ U* L% L% w
- launchSettings.json
# H" Q0 P# ?0 j, |% _% r - project.json
B0 j, a+ E; ^0 S, V' f, S
/ _+ }3 Y* S* U7 o解决方案9 e. E4 ?7 g2 {) @
) {0 v; F, W/ c) L有下面几个解决方案。
0 |# E" i( b0 Z% z) d% ]% \) G; K7 m8 s0 |0 b) ~( }* p9 V
修改 .csproj 文件: f* z6 d7 D+ ?2 O( n6 q
; ^( @) A3 O' g
+ G+ y0 G# k, v可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName
, |: _% p+ q6 \4 C. a
0 i9 K( ]! A9 ^9 V c8 M8 |; L3 e# w
8 A( t" @9 F! \可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:
( N: ^+ P; y1 W4 |% \0 S0 P- O$ I( R4 [5 {6 U
dotnet publish 时添加8 P$ [# Z% p* o* u) V1 f0 n0 M
8 _/ S" j( W. e. z# g6 k- W6 I& m$ O" e) c0 S- Z/ o% E4 N
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置9 a* u* S6 `) C
* ^2 X" {5 |1 YCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
2 {2 I4 g" e5 PPowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development"
6 k" I! d4 [1 a% {7 m
, w9 Y5 l3 c8 _; \0 U8 ?web.config 配置
3 J# D, f1 r2 |1 a* i! G1 k2 H. _1 B) }4 `+ x0 c' e
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结
2 |% y/ k8 C4 F4 W% | _
/ _ ^2 H6 K; v! a. X# ^2 \6 P! F$ _0 y% T
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 : a6 e4 o2 y7 t- X, v0 u+ G( r# F0 [5 O
来源:http://www.jb51.net/article/209488.htm
1 z0 K4 D, C5 g) y# |5 J免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|