|
|
目录4 a/ ]0 n& E( V9 g# J, e: Y' e% a
. x8 E) g8 H% i( V, e/ f3 j
5 P+ i d$ ^! Q- 遇到的问题
2 P. s" k, r$ B1 C5 n7 h0 k: U% G - 解决方案
, j/ T/ u4 _$ }' b4 Q/ p# N, W# P6 c! z# z# Z
- 修改 .csproj 文件0 V7 Q: H2 }2 R% g2 {
- 在 FolderProfile.pubxml 中添加 EnvironmentName( R# o) z. [# Z' p8 U& D3 w
- dotnet publish 时添加6 v/ y- m, |! z% e) s4 E
- cmd配置8 h& b) t% x1 T& H
- web.config 配置! {7 F8 J/ a" U1 g5 `
# _! K0 y+ i$ j: B9 N8 P$ W - 总结
1 n& V5 h8 e, Q) l 8 p$ y5 R4 c( u/ p6 K$ F+ T8 ?0 y
遇到的问题* f- S1 G6 `2 ?3 p" c! y1 b
; R/ I. n3 ]% R+ G当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。+ d. N, L: ]; U4 J$ q; r5 j( i
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
$ O9 Y! ^* X# Z3 K( E4 H% N
% N% [5 `' R/ B- windows settings 3 l& X% I- W7 Z3 j1 I `7 o" f" V9 x
- .pubxml file
( q, ?, q9 V8 |8 @( V& g* Z - launchSettings.json & t+ `9 w+ V$ A8 {8 H- w4 N
- project.json* X) ]. Y0 ^( |7 Z3 W" V
) j, e" g* d; W' |5 |$ B
解决方案/ R6 D1 G! N6 m; _1 P
6 Z0 j1 g; [/ W; K% N# C
有下面几个解决方案。
/ }9 {/ j" w6 h' j' u$ X% F: V% @" L$ H' j1 W1 c+ X2 P, O
修改 .csproj 文件
* v8 ^( ~* H' ~6 G
r# D! Z$ R& n+ v B8 `
9 u. Y4 X5 N! h4 C可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName
5 U g5 \+ q W; V3 D- u% k
7 S& s# P' p! U: p+ _ z5 u" p2 `! X
! [3 o" `2 M& g$ ?) _3 F7 Y; ?可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:
& u6 m+ u, O6 @' e. d& W3 p
; |) a4 V8 u4 b4 B! ]( q) Pdotnet publish 时添加
& _0 a4 @: } U, D! ~2 U
6 K. M" n9 C0 \6 E/ ~+ X `+ {1 i* t' T# z; ]6 I7 \
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置+ a+ U# z/ ]1 s! ^4 Z V* n" N
, H) n' E; [2 ? p w8 ]) |$ _ @
Command Line : setx ASPNETCORE_ENVIRONMENT "Development"
( j; q+ [& W* N; b7 y. k) q8 p4 \PowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development"! L6 s- n/ ~) U1 l; n" K
8 U, t: W* t- Nweb.config 配置
" q }% q+ m$ m% {. m, k& z" O( Y9 E% h& K( t
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结
( e' S* u" G+ I" N- e* A. B/ N( y2 o; m; c+ ]6 w& b
* [: S$ Y+ ^- I1 T8 r% @
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 3 s, f" I5 L0 e
来源:http://www.jb51.net/article/209488.htm+ ]$ n* {4 F' S; {7 L6 ?
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|