|
目录4 }$ k, V* }' ]! o0 z& G- C
& l; [+ F( P! h( p1 s% |$ |
; m7 z! s {8 u+ C; h, O8 Y! A- 遇到的问题
8 U* H( F7 s4 ` w1 w - 解决方案. v' w2 l4 Y, G% z9 D
0 j2 f0 i0 }# ^! q( \- P2 B
- 修改 .csproj 文件
; _& B" {( E( D9 t# F i - 在 FolderProfile.pubxml 中添加 EnvironmentName4 b u5 O% q; p1 l
- dotnet publish 时添加
8 |* y6 Q5 \* m; I - cmd配置
9 }% E J4 L5 l/ i1 `. ^- K1 a; x - web.config 配置
( `' Y6 Q7 C: W7 `" R0 a T, A1 L) a" j9 C
- 总结" Y4 a1 P6 k4 ]9 S
6 t# I6 g* J# h遇到的问题/ t5 ?" B( ^+ }8 H
B N" L: d' Z# U当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
/ ~( R6 x2 h7 o x: }请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
/ Q* r9 b* o+ A; ^& X
. y: F' T+ U) S* O5 }- windows settings
3 m& n" e2 i1 `/ F - .pubxml file
0 f: I; Z, e/ [. h - launchSettings.json % Q# h/ ^3 O2 ^9 c2 _* k
- project.json0 X: n) d# b8 L+ u8 y
* a/ n: ~# T9 Y) F: _
解决方案
! B7 D* c) M0 \- k
4 {* w6 ^% g) U5 ^' \有下面几个解决方案。
! P8 }6 c8 C* T, Z: q. g! j) D* b8 ?% W
5 S# Y! t$ f6 O: |, z) Y& G8 e修改 .csproj 文件7 i% U, h- c0 ]8 J8 R5 s
" }9 _( U; H2 q8 |& Q% V
/ s$ g4 g: P# t7 s6 F4 h: J8 n' _可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName
; c/ h5 A* F! u2 |5 _/ ^1 g# X& E+ l' S5 s, e
' @: r( ]+ A6 k
可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:% M5 I" K! T! e( f
6 z) f. D6 |7 E% D8 I. W+ A. ~3 N1 Edotnet publish 时添加5 d7 p7 f7 o6 h5 K+ E& P# {
4 H7 ]1 o, k: B3 w/ S( P9 H
3 N# d$ p; g w3 O0 A w5 `6 r- y在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置
# @6 d3 w0 I3 D' Q* m
* M% r& B$ ?! ~% d5 W9 QCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
2 ~: D: k4 m0 vPowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development"3 J, ? n) b" X$ i* M) H; ]
- o$ z/ Z2 }8 i9 Y( I- x" M% H0 E1 N
web.config 配置
/ {* B. r9 L' z7 J- m! Z$ [ X4 }
" I1 k* y2 p3 f/ r9 D+ l可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结
% \! a0 v/ m( h) D4 s7 X/ X1 W# x d( O7 v' i
( p+ O3 |$ w: X* v( \相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 , C* M1 ]2 m% Z7 N! h9 A# @2 I
来源:http://www.jb51.net/article/209488.htm1 v. }* T1 M3 @
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|