|
|
目录' T* g7 g5 d* I( C8 r% [8 W: W
+ ^5 t' i0 v6 L0 I
" {4 p, B+ c4 m6 ]% [3 d* \- 遇到的问题
( F+ {8 R* n" f$ ~ - 解决方案7 j6 x, J5 \& ~8 s0 `! i
, a1 |2 e8 D/ K/ c% b3 M ~& l
- 修改 .csproj 文件! U0 Z3 N$ g; ~, x5 b2 x
- 在 FolderProfile.pubxml 中添加 EnvironmentName
; a$ j( R' F9 F- }% B9 q" p: U - dotnet publish 时添加
: l' e& g8 H* H3 o3 q, U - cmd配置2 v; A" Y# d6 u8 \+ r5 x
- web.config 配置
8 z, P+ G- J, l
. c9 S7 _. q/ U - 总结# t# p/ P% M0 x3 z0 i3 b
* p- [- B0 Z. t' \' E
遇到的问题
& i- p# D7 u3 K1 G1 D. S
$ |! E0 {* u8 Y" Z8 ^5 s# S当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。
+ R9 D+ [& j9 n7 r请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。* _# ~7 A8 l6 Q! [7 T2 a4 Q" |
: R) D, c3 [( N/ p; [( U$ y
- windows settings 8 H0 l1 f* C6 g) g9 T
- .pubxml file 5 F6 Q7 u8 ~) {1 y( Y! f# q
- launchSettings.json
. y, C ~0 M ~8 q. ? - project.json5 n! h! X0 T( [. r! i8 g" S' y
: {$ i8 C( F) G解决方案/ f0 G' Q7 X. N) o! R D& ]
' j- j! E" `8 }2 i' Z8 w4 I2 b有下面几个解决方案。$ B* d0 d' ?8 O! {
. {, }2 P4 m6 B5 \; f( E3 o
修改 .csproj 文件6 D4 h# j# d i+ j8 l& l" j
: n0 L$ t1 q& o7 v' b! h9 `% d
3 r8 T4 C0 j2 L3 ~$ y# X4 k2 |
可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName
* W2 p! ~5 I2 B) S4 s6 w* V+ k
+ |6 s9 D+ j# c* j7 B
; o2 N5 y( O2 a6 Q: i0 Y9 Y% n, d( j可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:/ ^: f) H7 ]) \
5 j( m( E4 b% ~dotnet publish 时添加2 Q1 d( z' x; y7 k7 M9 z; x' Z
% _% l. S* ^. m( d$ Z
) p* @' t x' u
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置
* Z3 k8 s. r/ n0 m
; T! c' S# E& x) S ECommand Line : setx ASPNETCORE_ENVIRONMENT "Development"
- E" c5 w/ ^, x4 n0 _7 a' nPowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development", X T2 F, i' t/ [4 ~) F$ P- L! ?$ [
: t4 E* F% p* b) V5 y3 z+ w8 {4 _
web.config 配置+ ^' P# x6 y: f7 {! {0 p7 u1 K
) Z, G7 a0 j+ G7 }4 y3 X9 O
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结7 N B# u% v R" b9 Z; ~3 z% F
; F/ c' x' |, y- [- J, k/ Y B+ P
( n0 m' t1 {- I
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
. S: S2 R% {" T8 x来源:http://www.jb51.net/article/209488.htm
9 h. n1 h4 a$ R免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|