NET问答: 发布 asp.net core 时如何修改 ASPNETCORE_ENVIRONMENT 环境变量?
咨詢區
Dario:
當我把 asp.net core web 發布到本地文件時,我發現程序讀的是 appsettings.Production.json ,也就說明當前的 ASPNETCORE_ENVIRONMENT = Production。
請問如何動態修改 ASPNETCORE_ENVIRONMENT 的值,這樣的話在 調試 和 發布 階段都非常靈活了,但我嘗試在下面幾個地方修改都沒有成功。。。
windows settings
.pubxml file
launchSettings.json
project.json
回答區
Abhinav Galodha:
有下面幾個解決方案。
修改 .csproj 文件
可以在 .csproj 中增加 <EnvironmentName> 節點來設置環境變量,當 MSBuild 編譯時會根據當前的項目模式為 Deubg 還是 Release 執行相應代碼段,最后配置節會進入到 web.config 中。
<!--?Custom?Property?Group?added?to?add?the?Environment?name?during?publishThe?EnvironmentName?property?is?used?during?the?publish?for?the?Environment?variable?in?web.config--><PropertyGroup?Condition="?'$(Configuration)'?==?''?Or?'$(Configuration)'?==?'Debug'"><EnvironmentName>Development</EnvironmentName></PropertyGroup><PropertyGroup?Condition="?'$(Configuration)'?!=?''?AND?'$(Configuration)'?!=?'Debug'?"><EnvironmentName>Production</EnvironmentName></PropertyGroup>在 FolderProfile.pubxml 中添加 EnvironmentName
可以在 publish profile 中添加 <EnvironmentName> 節點配置你需要的環境變量,如下代碼所示:
<?xml?version="1.0"?encoding="utf-8"?> <Project?ToolsVersion="4.0"?xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><PropertyGroup><DeleteExistingFiles>True</DeleteExistingFiles><EnvironmentName>Development</EnvironmentName></PropertyGroup> </Project>dotnet publish 時添加
在用 dotnet pulish 發布項目時,可以在發布參數中指定 環境變量。
dotnet?publish?-c?Debug?-r?win-x64?/p:EnvironmentName=DevelopmentSanket:
我大概有兩種方案。
cmd配置
Command Line : setx ASPNETCORE_ENVIRONMENT "Development"
PowerShell : ?$Env:ASPNETCORE_ENVIRONMENT = "Development"
web.config 配置
可以在最后發布好的 web.config 中增加 environmentVariables 節點,如下所示:
<configuration><!--Configure?your?application?settings?in?appsettings.json.?Learn?more?at?http://go.microsoft.com/fwlink/?LinkId=786380--><system.webServer><handlers><add?name="aspNetCore"?path="*"?verb="*"?modules="AspNetCoreModule"?resourceType="Unspecified"?/></handlers><aspNetCore?processPath=".\MyApplication.exe"?arguments=""?stdoutLogEnabled="false"?stdoutLogFile=".\logs\stdout"?forwardWindowsAuthToken="false"><environmentVariables><environmentVariable?name="ASPNETCORE_ENVIRONMENT"?value="Development"?/></environmentVariables></aspNetCore></system.webServer> </configuration>點評區
相信這是很多新人在用 Asp.NET Core 開發項目最后發布時都會遇到的坎,我在實際開發中用的最多的是在機器級配置 ASPNETCORE_ENVIRONMENT ,萬萬沒想到還有這么多的靈活配置方案,不得不服,尤其是那個在 dotnet publish 時指定,學習了 ????????????。
總結
以上是生活随笔為你收集整理的NET问答: 发布 asp.net core 时如何修改 ASPNETCORE_ENVIRONMENT 环境变量?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MS Learn 宝藏资源库 - 学习经
- 下一篇: 牛X,.NET6又双叒叕新版本,这是要起