|
|
目录3 i0 T8 a/ W: x. {8 d+ h# b3 O+ |6 z( H
, A9 }! {2 l) O+ P' d" A* F# U
! p1 Q; U3 m% ~9 V2 w. G# w- 遇到的问题
" p) r; g, K! x# ]' Z - 解决方案
' d+ |$ i/ [% R3 F
5 K& A& ~! v* U- L) D( C; H" B- 修改 .csproj 文件; @+ S) O! W; l) q7 n6 e
- 在 FolderProfile.pubxml 中添加 EnvironmentName
, Y* P' l$ e f! H - dotnet publish 时添加
9 {' o6 m. ~& x: N9 M - cmd配置
4 I+ I) c; {8 L2 v$ y* {0 R - web.config 配置/ t) O4 U" l9 W7 S
0 w3 r, S7 y& E1 b7 t7 f' _1 M$ E3 i
- 总结
, Y8 O {7 W" D1 k& i- w
K1 h# Z. k' b, m" N+ C' N0 v* K$ ]遇到的问题" ]4 `4 L6 E0 M' M5 R
* t; k4 t! B: ^" G0 L# W: S
当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。6 L! N- T: s8 E! c
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
- J! n$ [$ _7 G0 l& i7 R4 j) p: V
4 g' @9 f! O5 p% d/ C$ J5 b- windows settings
8 \- H# p% D$ A5 m( k - .pubxml file
. |# a* A+ G; p' N8 U1 Q - launchSettings.json
) B9 ~, j0 T) I$ `, l - project.json" C- I2 a% ?: U4 m
: \$ m* K5 |6 g% v q
解决方案
* s" \+ D6 t! e
" i& R, c' d" Q3 n6 j, S3 T% d有下面几个解决方案。' i0 S2 ]) b" Y q$ V7 Y, I6 ^3 O
- U) J1 D% r3 a4 _8 r# @
修改 .csproj 文件
& ]" c! V3 Y3 e3 u# y G; c( A; r' z1 {+ A, ?+ r/ D
+ T8 R# w l/ N6 Z- a可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName0 Z3 f; D$ u. A% y" L, w/ _
, L, }3 K# W7 s. w* x+ O& [, Z4 ~" k1 P: k
可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:
h. w. i5 z9 A" w
4 Y7 p- }) {% ~dotnet publish 时添加4 {3 t4 Y$ {7 p- f0 R7 [
* J- z9 j Y, n$ N3 N8 G& S* x% A2 ~ d' q: t4 s, }( q* |
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置
5 M0 }# K9 Y% @9 Q
- V ?+ J7 P6 l5 ~& O' yCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
) p" i0 ]- O9 I$ k# k( m8 aPowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development"
4 F @% L5 H: z6 c7 \# U; z7 n/ Z6 K: _
web.config 配置
( l$ _1 h& A7 p9 k: S$ c' @& V# X& E9 K3 Y7 T! b
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结$ A% K, q; h* v ~: b3 m
1 L1 k5 l7 b' Z8 A0 v+ e* Q/ y
3 m/ q) r' t K3 a+ K9 i8 ^% q相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 # B3 p( [. l, p8 i) X) Y* _
来源:http://www.jb51.net/article/209488.htm% f, E: B! e0 a5 o" R
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|