|
目录
( m( ]1 u" i( @& J0 n6 s0 f; E& c0 G G+ d; O9 y/ {6 x, N
0 ?0 W/ }! S& X9 z7 X5 r
- 遇到的问题
" ^) Z+ W( I4 {0 G' D: c5 G - 解决方案. ?* d* V% M& R4 f
8 U& K2 m- V7 L& e5 a4 n* y- 修改 .csproj 文件
' U f, ]+ J v% `. m - 在 FolderProfile.pubxml 中添加 EnvironmentName
9 {2 l4 O. I8 _9 d8 L! O; q - dotnet publish 时添加
. U% B1 w, Z& x. R" d% \ - cmd配置
& W6 E1 Y7 I1 _ - web.config 配置1 Y& ^1 e8 d; h3 t+ V
7 h2 V8 X7 a) S2 \) L: C - 总结
* _, A" `) |. L3 t/ Z
! N7 Z! z G) ]: E" n" n- b4 J遇到的问题
- M( t- J( ~- R8 w
. c. w2 j* w# O$ v/ s6 u% ^当我把 asp.net core web 发布到本地文件时,我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT = Production。7 K; m8 g- H1 W3 f1 m
请问如何动态修改 ASPNETCORE_ENVIRONMENT的值,这样的话在 调试 和 发布 阶段都非常灵活了,但我尝试在下面几个地方修改都没有成功。。。9 S5 F1 b: T& O
$ {% `' z$ k/ P4 `: I8 e5 A! R7 I! ` A( q- windows settings
( R- k8 @4 @6 O$ E1 k3 O - .pubxml file
) y2 S( X* Y' u - launchSettings.json . }$ B( F4 ?) P: j, Y9 X
- project.json% j/ q9 X) F8 W; Z
3 d; r+ h+ g8 K7 X& k q4 O# n% l# M
解决方案
- [* A: i [* r2 u
' U( l2 r( C; S" S6 z3 N" L有下面几个解决方案。
: o' ~3 i, {5 ~2 [
. v. h! y& i0 Y修改 .csproj 文件
U, T' }! R2 M6 d! \& Q1 N
' F1 C1 \' y: S4 e/ i2 B- j. V* T* \2 R
可以在 .csproj 中增加 节点来设置环境变量,当 MSBuild 编译时会根据当前的项目模式为 Deubg 还是 Release 执行相应代码段,最后配置节会进入到 web.config 中。在 FolderProfile.pubxml 中添加 EnvironmentName9 s4 \2 l; X& C$ e
~/ l9 ?% `/ \( O% w# n
0 C# y* e9 w; V! Y可以在 publish profile中添加 节点配置你需要的环境变量,如下代码所示:
' u& ^4 a3 |6 ] o: N' Q# ]6 W, O9 R/ x7 \
dotnet publish 时添加0 T: D, D/ r. o) c; _1 S
9 A- d) k2 E" G& ]
1 q+ H) `! w7 ~1 P+ @3 K1 _
在用 dotnet pulish 发布项目时,可以在发布参数中指定 环境变量。- dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development
复制代码 cmd配置
, q( T4 t. E t, E7 x3 c. _6 q) _1 {! D+ g3 B% |
Command Line : setx ASPNETCORE_ENVIRONMENT "Development"* I& F) I- |% q6 n: {4 b4 B, t
PowerShell : $Env:ASPNETCORE_ENVIRONMENT = "Development"# G/ m7 @. [! R0 I l/ L2 J0 U
V- b4 d0 k( T! y, W7 W/ _2 [2 a+ iweb.config 配置
5 F+ P: ]4 D6 ?% R+ ? A' _( B# N
可以在最后发布好的 web.config 中增加 environmentVariables 节点,如下所示:总结7 T9 R1 w9 Z7 {' }2 }6 `' I6 y" }# _2 u
' }' F4 D( b2 ^! a# T+ s# d: w! A$ j2 E" A/ [
相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎,我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT ,万万没想到还有这么多的灵活配置方案,不得不服,尤其是那个在 dotnet publish时指定,学习了
! j. k3 ]' n- o# e( o来源:http://www.jb51.net/article/209488.htm
5 @. Q7 H; S! |7 g# w ]免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|