|
|
目录. X* s' g, W e7 q1 S5 d* p
1 A2 I$ j( Z5 t
( n% V% t5 h2 a- 遇到的问题 [* I! J- Y! V! {
- 解决方案
1 T/ b- _) x" W" o* D0 @/ D* P9 |! h: A
- 修改 .csproj 文件
+ B( H" ~/ c. `! u, r) l! M+ C - 在 FolderProfile.pubxml 中添加 EnvironmentName
+ \' ?1 P+ S/ o T7 _" G, { - dotnet publish 时添加. K4 v7 \/ u$ X
- cmd配置7 F; |7 S) g. l# F# {) ^/ G$ j
- web.config 配置
% d8 _- H: a( R1 @
; p3 K) M O8 {& c5 g, l7 P - 总结2 Q( m! K# C# W! `
. ]0 ^3 M, N$ Q0 Q$ {% p' S* j% r( \: X
遇到的问题
1 D$ m6 T* B. d/ x9 u; _, ]0 G6 q: E
. ?/ Q( j# P- F1 l当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
+ \7 ?5 x2 M& A9 A6 a1 U- f, b请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。! ^! M* w: T0 U9 F# f0 O
1 Z7 w) W; b( k4 x& d- windows settings 8 f' M3 K, `) W U2 d5 I( Z
- .pubxml file
; x+ u* M5 ^1 I - launchSettings.json
. \* i( }. }. U" `3 I, Q1 U - project.json/ k. \, |# `: o5 G: l
- t, c1 k1 C9 x: e- I解决方案( @! C7 ^2 v7 b, H
. J8 ^( \. n) P5 s有下面几个解决方案。
3 k( K$ z% i0 D+ Z- `
: z( l( c6 R, B修改 .csproj 文件; g* n( d0 z8 r6 h- \
$ E' |% x6 x& g3 r2 E0 E% B( X
* z4 E, N. U6 |+ R8 `8 A
可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName: g( M' S1 k& \% V6 r6 P- d& x6 a
. R$ }" x# r! }7 p" \9 X% Q$ h9 I1 ?/ D
5 U! S7 `& _; {4 N, q5 {可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:( \5 \" C, s# }% y6 i" y% y
$ b$ M* Q+ E+ ?) P
dotnet publish 时添加
: g; C& r: y/ k. n9 Y+ M* R* G2 T2 O+ K5 `; B$ x
$ I- k& p' T( [ q1 Z1 ]. W在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置# y! y5 w# M. V |1 d% _
1 w9 A9 a% a) ]( q. NCommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
6 K! m# x) A9 ]- i4 j4 W3 NPowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development"$ T; U" h7 c5 `) [& m
1 X" R1 M8 f# k2 z6 ]9 U9 s3 I
web.config 配置
3 P9 R$ z$ y; T' `) `
* ^( R2 _' c3 H5 _# o可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结4 G, D r8 P; Z0 @! d( E
' R4 @) Z3 R* A% e& b
' `1 b3 P% _, |" M& x
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
# _3 C; C0 i% R7 y来源:http://www.jb51.net/article/209488.htm, r$ {8 ~5 h/ M5 a b1 Z8 H0 ?
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|