wordpress电子商务站,适合服务行业做推广的网站,中国三安建设网站,团队拓展方案咨询区 Dario#xff1a;当我把 asp.net core web 发布到本地文件时#xff0c;我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT Production。请问如何动态修改 ASPNETCORE_ENVIRONMENT 的值#xff0c;这样的话在 调试 和 发布 阶段… 咨询区 Dario当我把 asp.net core web 发布到本地文件时我发现程序读的是 appsettings.Production.json ,也就说明当前的 ASPNETCORE_ENVIRONMENT Production。请问如何动态修改 ASPNETCORE_ENVIRONMENT 的值这样的话在 调试 和 发布 阶段都非常灵活了但我尝试在下面几个地方修改都没有成功。。。windows settings.pubxml filelaunchSettings.jsonproject.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) DebugEnvironmentNameDevelopment/EnvironmentName/PropertyGroupPropertyGroup Condition $(Configuration) ! AND $(Configuration) ! Debug EnvironmentNameProduction/EnvironmentName/PropertyGroup在 FolderProfile.pubxml 中添加 EnvironmentName可以在 publish profile 中添加 EnvironmentName 节点配置你需要的环境变量如下代码所示
?xml version1.0 encodingutf-8?
Project ToolsVersion4.0 xmlnshttp://schemas.microsoft.com/developer/msbuild/2003PropertyGroupDeleteExistingFilesTrue/DeleteExistingFilesEnvironmentNameDevelopment/EnvironmentName/PropertyGroup
/Projectdotnet publish 时添加在用 dotnet pulish 发布项目时可以在发布参数中指定 环境变量。
dotnet publish -c Debug -r win-x64 /p:EnvironmentNameDevelopmentSanket我大概有两种方案。cmd配置Command Line : setx ASPNETCORE_ENVIRONMENT DevelopmentPowerShell : $Env:ASPNETCORE_ENVIRONMENT Developmentweb.config 配置可以在最后发布好的 web.config 中增加 environmentVariables 节点如下所示
configuration!--Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId786380--system.webServerhandlersadd nameaspNetCore path* verb* modulesAspNetCoreModule resourceTypeUnspecified //handlersaspNetCore processPath.\MyApplication.exe arguments stdoutLogEnabledfalse stdoutLogFile.\logs\stdout forwardWindowsAuthTokenfalseenvironmentVariablesenvironmentVariable nameASPNETCORE_ENVIRONMENT valueDevelopment //environmentVariables/aspNetCore/system.webServer
/configuration点评区 相信这是很多新人在用 Asp.NET Core 开发项目最后发布时都会遇到的坎我在实际开发中用的最多的是在机器级配置 ASPNETCORE_ENVIRONMENT 万万没想到还有这么多的灵活配置方案不得不服尤其是那个在 dotnet publish 时指定学习了 ????????????。