|
|
目录7 F- J! L: `& W J( b7 x' T( a1 H
- {3 ^4 _9 b! ^7 U1 z# V2 Y$ O6 l: u7 E9 j5 ?6 }; m
- 遇到的问题
& p7 ?8 B; t% q2 H* Q- L - 解决方案
" F) l- w5 Q. \- M$ s4 D
6 L/ C T2 z5 ~ b- 修改 .csproj 文件
; ]% k0 z) I: U+ ]' s7 P - 在 FolderProfile.pubxml 中添加 EnvironmentName @4 u7 S F+ V, n
- dotnet publish 时添加
7 j/ ^: T* K/ l: {0 x - cmd配置
. b# H2 m! ? t9 n# r - web.config 配置
- G/ D2 K( ^5 t U
2 ^- @7 m2 t4 \4 x, g& O! g - 总结
; X+ C# f6 A- A4 `' f Q" e
- z1 U* }- I+ ^+ `遇到的问题
G* i7 Z6 B% \- r+ a: S4 o7 F& @* g9 x
9 W1 Z- o: ?% i9 D8 R1 O; a& {当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
+ K8 H* F. ]: f1 h请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。
y$ g! w" r r 7 x0 l4 h; b' K0 f% c& x
- windows settings 1 r& `5 X* D9 i9 r& O$ ~ u
- .pubxml file
/ Z) g6 d0 W0 x) G, g - launchSettings.json
9 D1 A, ]5 ]" C8 f8 s - project.json
6 x4 H, [ L: K' B 7 d+ o- F) Q, ]
解决方案$ [2 Y% H: l& x* i0 z) {' `" T/ {
# r+ ?* q- {8 o( s' l有下面几个解决方案。9 F e3 q1 z3 F" @" h M
3 W0 K D$ r9 _# S( _6 p修改 .csproj 文件
! Z! O s8 x3 H- P5 O- a- C% D& R+ C, M' e
: B1 c. _' X" r. }
可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName+ j+ Q; F [) I
6 b5 \: G9 T* i. D- @* Z" F( }3 S' Z$ ^
3 u: C3 \, ]6 ]
可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:
' v P O% _8 a+ e( W) n; h, f' O5 z& d! L
dotnet publish 时添加4 a" t. ?7 B% V+ E2 F7 e) m
1 [! {% c% W% L" d3 \
9 h) S2 n* t* X) A在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置' d4 R2 Q7 _# W% q. o
c; v+ j. S/ W% O5 HCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
" D' W) h+ q7 v5 Q) Q/ q& EPowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development": L2 e- x# \8 o/ j. b4 [6 A0 f
% F% [- [& b) d0 P. L8 }1 fweb.config 配置& z7 G% g9 P0 k
6 d/ R5 Z" h4 u+ Z# D6 ]可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结0 t j8 T% y: A0 ^3 V
8 B5 [1 g- T7 D5 v, X2 F9 h, \8 E8 |( h1 B' R( Z
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
/ j- Y0 b8 e P2 P6 S5 T! \" z- L来源:http://www.jb51.net/article/209488.htm. q' H0 L$ ]: @; x
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|