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=Development

Sanket

我大概有两种方案。

  • 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 时指定,学习了 ????????????。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

注释里的诅咒:哪种语言遭受最多的咒骂?

导读&#xff1a;原文作者Scott Gilbertson在webmonkey.com发表一篇《Cussing in Commits: Which Programming Language Inspires the Most Swearing?》&#xff0c;由外刊IT评论整理翻译《注释里的诅咒&#xff1a;哪种语言遭受最多的咒骂&#xff1f;》。内容如下:任何一个程…

怎样快速掌握深度学习TensorFlow框架?

TensorFlow是Google基于DistBelief进行研发的第二代人工智能学习系统&#xff0c;其命名来源于本身的运行原理。Tensor&#xff08;张量&#xff09;意味着N维数组&#xff0c;Flow&#xff08;流&#xff09;意味着基于数据流图的计算&#xff0c;TensorFlow实际上就是张量从流…

牛X,.NET6又双叒叕新版本,这是要起飞吗?

.NET6又双叒叕出新版本了&#xff0c;2月17号Preview1、3月11号Preview2、4月8号又Preview3了&#xff0c;密集的版本发布&#xff0c;各种新技术和改进优化&#xff0c;不禁要问一句&#xff0c;.NET6是要起飞吗&#xff1f;下面给大家科普下.NET6将带来的几大核心变化&#x…

用python挖一挖知乎上宅男们最喜欢的1000个妹子

在文章开始前&#xff0c;先来一张图给大家热热身。这里是宅男们最喜欢的妹子中排名前200位的头像&#xff08;实际193张图&#xff0c;部分不规则的图已被二胖过滤&#xff09;。排名不分先后哈&#xff01;快来看看有没有你们熟悉的面孔。找到眼熟的人了吗&#xff1f;说不定…

在 .NET 6 Preview 3 ASP.NET Core 更新

.NET 6 Preview 3现在可用了&#xff0c;其中包括对ASP.NET Core的许多重大改进。这是此预览版本中的新增功能&#xff1a;更小的SignalR&#xff0c;Blazor Server和MessagePack scripts启用 Redis 分析会话HTTP/3 endpoint TLS配置初版的 .NET Hot Reload 支持Razor编译器不再…

趣图:程序员桌面对比,iOS vs 安卓

程序员桌面对比&#xff0c;iOS vs 安卓↓↓↓数据与算法之美用数据解决不可能长按扫码关注

如何在 ASP.Net Core 中使用 HTTP.sys WebServer ?

ASP.Net Core 是一个开源的&#xff0c;跨平台的&#xff0c;轻量级模块化框架&#xff0c;可用它来构建高性能的Web程序&#xff0c;大家都知道 Kestrel 是 ASP.Net Core 内置的跨平台web服务器&#xff0c;但是它有一定的局限性&#xff0c;比如不支持 端口共享 , WebSockets…

百度移动联盟(munion)-广告平台投放流程详细介绍 (绿色通道)

1. 百度平台官网介绍&#xff1a; http://hi.baidu.com/mobads/blog/ ... 1c7fc3bc3e1e2e.html2. AdView 官网介绍&#xff1a; 为开发者提供“AdView-百度” 绿色通道审核&#xff1b;提供除百度分成外额外AdView渠道分成&#xff1b;赚取更多&#xff0c;更稳定的广告费用&a…

从一个骗局谈生活中的基础算法

曾经有一个著名的骗局&#xff1a;小明是一个赌马爱好者&#xff0c;最近他连续几次提前收到了预测赌马结果的邮件&#xff0c;从一开始由于不屑而错失良机&#xff0c;到渐渐深信不疑&#xff0c;直到最后给邮件发送方汇了巨款才发现上当。看过这个的人应该知道&#xff0c;骗…

用得最多的冒泡排序是不是少了个关键点?

前言冒泡排序应该是很多小伙伴的最爱&#xff0c;简单、直接、好理解&#xff1b;回顾以往参与和阅读的项目&#xff0c;凡是牵涉自定义排序的算法&#xff0c;很大一部分都在用冒泡&#xff0c;其中很多都忽略了一个关键点&#xff1b;来&#xff0c;咱们细细品…正文1. 冒泡排…

荐书 | 攻克世纪难题,拒绝领取菲尔兹奖的孤独数学天才的一生

今天小木给大家介绍五本数学科普文&#xff0c;了解了一些数学家研究数学、证明猜想的经历&#xff0c;他们的专研精神简直让小木五体投地&#xff01;这也验证了一句经典名言“念念不忘&#xff0c;必有回响”。希望我们都能把时间奉献给自己喜欢的事情上。下面&#xff0c;让…

C# 搭建自己的NuGet服务器,上传自定义NuGet包

第一步搭建NuGet服务器创建空Web项目安装Nuget服务&#xff0c;目前最新版本2.8.2安装完成&#xff0c;会自动生产服务&#xff0c;出现如下界面发布该网站&#xff0c;并部署至IIS将.nupkg文件发布至网站的Packages目录。在VS中修改NuGet引用路径注意把自定NuGet放在首位&…

在不同的ObjectContext中更新数据

第一个using中获取一些数据 User u; using (var db new Entities()) {u db.Users.First(); } 在using外改变 u.NickName "ABC"; 在第二个using中把改变更新到库 using (var db new Entities()) { …… db.SaveChanges(); } 在网上看了一些使用ApplyPropertyC…

5分钟理解一致性哈希算法

来自&#xff1a;cywosp链接&#xff1a;https://blog.csdn.net/cywosp/article/details/23397179一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希&#xff08;DHT&#xff09;实现算法&#xff0c;设计目标是为了解决因特网中的热点(Hot spot)问题&#xff0c;初衷…

linux 取消证书登录密码,SUSELinux 中为 SSH 访问设置不输入密码的证书认证登录方式...

SSH Client &#xff1a;linux-gxntSSH Server &#xff1a;xxzx-rdb目的&#xff1a; linux-gxnt 上的 nagios 用户以相同的用户(nagios)SSH 登录xxzx-rdb &#xff0c;不用输入密码。1.在 SSH Client 和 Server 上使用 yast 创建 nagios 用户和nagios 组&#xff0c;nagios 用…

Blazor 初探

Blazor 初探目录一、新建项目二、ASP.NET Core Blazor 项目结构三、结合代码讲解四、改造五、配置文件的使用六、发布到 Linux&#xff08;CentOS&#xff09;题外话&#xff0c;期间遇到个问题反向代理七、地址独立观察员 2021 年 4 月 11 日上个月发了篇文章《Blazor 中如何下…

Relaltek声卡在UBUNTU下没有声音的解决方法。

为什么80%的码农都做不了架构师&#xff1f;>>> The computer has an HDA Intel chip (Realtek ALC887) and I couldnt open alsamixer (this error was displayed: "load hw:0 error: Invalid argument"), although the sound seemed to be working in …

.Net项目模板进阶

友情提示&#xff1a;这篇有点长&#xff0c;有点绕&#xff0c;加油&#xff01;上一篇文章&#xff0c;简单的说明了一下.net项目模板的创建&#xff0c;主要是通过在项目文件*.csproj同目录下添加.template.config文件夹和里面的template.json&#xff0c;再用dotnet new -i…

Web Worker 使用教程

一、概述JavaScript 语言采用的是单线程模型&#xff0c;也就是说&#xff0c;所有任务只能在一个线程上完成&#xff0c;一次只能做一件事。前面的任务没做完&#xff0c;后面的任务只能等着。随着电脑计算能力的增强&#xff0c;尤其是多核 CPU 的出现&#xff0c;单线程带来…

NET问答: C# 中是否有最高效的方式对大文件做 checksum ?

咨询区 Dario&#xff1a;我需要在多台机器间同步大文件&#xff0c;不过文件高达 6G&#xff0c;通常我都是每几周手工同步一次&#xff0c;考虑到文件的文件名经常变&#xff0c;为了检验一致性&#xff0c;我考虑使用 checksum 机制。我的计划是在 源机器 和 目标机器 上做 …