|
|
目录2 K2 p3 V- f+ J c
5 A7 f$ u& ~! F' m1 D1 E3 N7 x$ ^2 y! R4 p
- 遇到的问题
* E& m& U+ A: ]+ I' L+ D" v8 R* r- w - 解决方案# P9 Q, |5 I8 J; K0 G
' p) q. s6 c' P" x) j2 k4 z: ?& h+ g
- 修改 .csproj 文件7 z' M- J2 y+ {9 D c3 T
- 在 FolderProfile.pubxml 中添加 EnvironmentName1 {/ I2 }, \) M! _7 d
- dotnet publish 时添加
# T" i, A, r2 a5 o: G/ i7 J - cmd配置, W8 R9 @4 L2 u! W
- web.config 配置
& l+ U6 V+ t3 _7 b) ~
6 N- _, e' G2 m' T$ w3 j ? - 总结( I; U5 r: X: O7 E$ k# o
5 s6 T" a6 T8 r, ^2 |/ l遇到的问题0 f. n4 P( F: B
, ^/ b7 \7 T" K- Y
当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。4 p M5 b B2 b( [
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。, f2 d1 K4 i' m0 }
8 ?/ f2 Y/ W& F, H% F- windows settings
: x J& g) [6 t9 W, h' G - .pubxml file 7 f% |( ~' q H2 R
- launchSettings.json : M* |' K& y5 d# W/ ^) L
- project.json
1 a; t: A0 a; C* }+ c 0 W0 e H7 C/ j- C7 o# Q2 Q
解决方案
5 ]* }6 b: o! R% [; Q2 D: j9 k( s# G" T
有下面几个解决方案。
" R# S' U/ b" k, Z+ B5 s; r; ]; ?3 o# E
修改 .csproj 文件
1 B* R+ T* q& `. \3 ~
% c; W8 U% o( @) S8 y5 c' D+ C" h/ j( C
可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName
2 r8 y" d; @5 B5 T8 z4 D; l- n5 c; ~" ^- f) p
6 `, M+ X! o: s& b, n可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:, n# X$ [& S9 l; W5 L4 S
+ n( f' [3 x0 P! wdotnet publish 时添加
1 ]( ~! R& A4 ~2 X# |! R( [: M" b7 P& T
9 V4 {$ }3 R8 m% X* b: G- W" }在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置2 h4 f: ]0 s. Q5 b
7 K( y8 K9 W- [# M1 V: dCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"2 b" U4 X, w( ]8 e, X& V; t
PowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development"( |; s, B0 D5 s5 W! E2 g
S1 _" O. [' l9 J7 ^web.config 配置
* b/ @3 Q; R/ M0 Z$ c' m; ?- z: J
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结7 P- C- U& T7 L. S! n) X9 ^
4 ]3 d( M. @. A
8 C5 { V$ Q) x- W0 B+ @相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了 : V% X& ~3 A# N- e
来源:http://www.jb51.net/article/209488.htm
) ^, m% f: r# o1 n- D9 n- X免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|