今天仍然是讲基础知识点。希望大家不要急,之所以花这么多篇幅讲基础知识,其实是希望大家能夯实理论之后,后面写代码就没那么困难。此外,基础知识还有助于在面试过程中加分。今天的主要内容为.net core的vs启动项目配置文件——launchSettings.json,以及项目引用的变量参数配置文件——appsettings.json。以下是内容概要:

  1. launchSettings.json文件

    1. launchSettings.json介绍

    2. launchSettings.json内容

    3. commandName和environmentVariables属性

    4. launchSettings.json集成界面设置

  2. appsettings.json文件

    1. appsettings.json的介绍

    2. appsettings.json的使用

一、launchSettings.json文件

  1. launchSettings.json介绍

    launchSettings.json文件位于“Properties”文件夹下,该文件描述了如何启动项目。比如:是否打开浏览器,应用程序使用哪些环境变量等。然后使用此信息来运行或调试我们的应用程序。这是前面创建演示项目生成的默认launchSettings.json文件的代码:

  2. launchSettings.json内容

    文件内容分为两个根节点:iisSettings 节点为 IIS设定,里面可以 IIS 或 IIS Express 通用的设定值,而 profiles 节点则是让 Visual Studio 可以选择要用哪个 Profile 来启动应用程序。

    profiles 节点有两个配置:一个使用IIS Express运行应用程序,另一个使用命令行处理程序运行应用程序。有趣的是它们直接对应于Visual Studio的启动按钮:

    换句话说:launchSettings.json文件控制使用Visual Studio可以运行应用程序的环境。实际上,如果我们添加一个新的配置文件,它将自动将该配置文件添加到启动按钮。这个可以自己试着加下。

    那我们该怎么配置这个文件?

  3. commandName和environmentVariables属性

    我们可以通过http://json.schemastore.org/launchsettings这个地址查看launchSettings.json完整的属性列表,通过这个JSON Schema来判断所能设定的属性。不过根据字面也能知道语义。这里介绍下commandName和environmentVariables。

    commandName 属性可以使用以下属性值:

    1)IISExpress 预设此属性值会使用vs所提供的 IIS Express测试服务器来执行应用程序。

    2)IIS 如果本机安装了IIS,就可以使用属性值,应用程序就会在IIS中运行。

    3)Project 使用console的方式来启动应用程序,相当于使用CLI来执行,因此可以从console中直接看到应用程序的输出,对于Asp.Net Core来说,其内置了Kestrel 轻量的网页服务器。

    4)Executable 允许执行任意的可执行文件(exe文件),此选项不使用于网页应用程序。

    5)Snapshot Debugger 发生异常时,可自动从实时 Web 应用程序收集调试快照。快照显示发生异常时源代码和变量的状态。

    environmentVariables是通过键/值对来设定。Asp.Net Core引用了一个特定的环境变量,ASPNETCORE_ENVIRONMENT来描述应用程序正在运行的环境,这个变量可以设置为:Development、Staging和Production,不区分大小写。

  4. launchSettings.json集成界面设置

    除了上面的操作方式,我们还可以在解决方案资源管理器中右键单击项目名称,然后从上下文菜单中选择“属性”选项。在项目“属性”  窗口上单击  “调试” 选项卡  ,如下所示。

    对于这个launchSettings.json文件,它仅在本地开发计算机中使用,部署到生产环境时就不需要此文件。如果有些设置需要生产服务器上使用,则需要将此类设置存储在appsettings.json文件中。通常,在Asp.Net Core应用程序中,配置设置将存储在appsettings.json文件中。下面来说说appsettings.json。

二、appsettings.json文件

  1. appsettings.json介绍

    在一个复杂的应用程序中,需要在整个应用程序中使用多个常量,但是我们无法简单地在所需的每个位置对其进行硬编码,因为后期我们需要更改某些值,我们将不得不在使用变量的位置去修改它,这很容易造成一些意想不到的错误。在开发过程中为了解决此问题,我们将此类常量保留在一个单独的文件,并在需要的时候去访问它,而appsetttings.json就是为了解决这类问题而存在。比如我们非常熟悉的数据库连接字符串。

    除了基本参数的配置外,我们在实际的开发过程中,还会遇到开发、测试、生产各环境的配置是有所不一样,如果只使用一个配置文件,在修改过程中也容易造成问题。asp.net core与时俱进,根据应用程序环境来维护不同的特定于应用程序的设置。而它的命名也是根据环境来命名,如:appsettings.Development.json。我们来看下appsttings.json在项目中如何使用,这里我们先了解下用法,在asp.net core mvc的时候会再深入的探讨它的使用。

  2. appsettings.json使用

    appsettings.json在创建项目的时候会一并创建好,打开appsettings.json文件,会看到以下代码:

    { "Logging": {   "LogLevel": {     "Default": "Information",     "Microsoft": "Warning",     "Microsoft.Hosting.Lifetime": "Information"  }}, "AllowedHosts": "*"}
    上面这段代码是典型的键值对形式的json数据结构。Logging节点是日志配置信息;AllowedHosts允许访问的Host主机。我们在原有的基础上加一个键,"Msg": "Hello World!"
    { "Logging": {   "LogLevel": {     "Default": "Information",     "Microsoft": "Warning",     "Microsoft.Hosting.Lifetime": "Information"  }}, "AllowedHosts": "*", "Msg": "Hello World!"}
    在Startup类中访问配置信息,我们需要使用到一个IConfiguration这个类,通过Startup类的构造函数注入IConfiguration服务。我们直接上代码:
    using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.AspNetCore.Http;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.Hosting;namespace FirstWebApp{   public class Startup  {       private IConfiguration Configuration;       public Startup(IConfiguration configuration)      {           Configuration = configuration;      }       public void Configure(IApplicationBuilder app)      {           app.Run(async context => {               await context.Response.WriteAsync(Configuration["Msg"]);          });      }  }}
    Ctrl+F5运行看下结果,如下图:
    这是appsettings简单使用方式。我们来看下如何根据不同环境配置文件,以及它执行顺序是怎么样的。以本地开发为例,我们展开appsettings.json文件,在该文件下有appsettings.Development.json文件,这个文件也是创建项目时默认生成的。双击打开这个文件。内容如下:
    { "Logging": {   "LogLevel": {     "Default": "Information",     "Microsoft": "Warning",     "Microsoft.Hosting.Lifetime": "Information"  }}}
    看着跟appsettings.json内容一样,这些都是默认配置。现在增加一个键,"Msg": "Hello World! from Development ",大家思考一下,它会输出什么?下图是运行结果:

    我们来分析下为什么输出的是“Hello World! from Development”?

    我们知道在项目启动运行生成web主机时会加载appsettings.Development.json。有人可能会好奇,他是在哪里加载的?我们在介绍Program调用CreateDefaultBuilder方法有提到过,调用CreateDefaultBuilder方法源码里会有如下两行:

    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)

    这两行代码在web主机启动时会把当前项目配置对应环境的appsettings.json文件加载好,而环境的变量在launchSettings文件中ASPNETCORE_ENVIRONMENT键设置。

    另外,从刚输出的Hello World! from Development,我们发现不同环境配置文件中存在相同的键时,appsettings.Development.json的优先级比较高。也就是说如果我们使用默认的配置加载顺序,后面配置的将覆盖前面的配置源。

    回到appsettings.json文件来,我们增加一个"Name": "susd say"键值对,在Startup文件的Configure方法内的WriteAsync增加Configuration["Name"]的输出。

    await context.Response.WriteAsync(Configuration["Name"]+":"+Configuration["Msg"]);

    直接运行看结果:

    在Development文件里没有配置Name这个节点,输出的是appsettings.json的配置信息,在源代码里我们可以看到appsettings.json文件是不能缺少,而且是默认的。我们配置不同环境的参数配置时,有些共享的配置就可以直接配置在appsettings.json里,而特定环境的参数配置到特定环境的配置文件里。

这两个json文件,对开发者来说非常重要。项目开发过程灵活应用配置有助于我们提高程序的维护。今天的两个json文件就说到这,后期会进行深入讨论appsettings.json的应用。

      最后,祝大家儿童节快乐,学习快乐~

asp打开exe执行本地程序._ASP.NET Core json配置文件相关推荐

  1. asp打开exe执行本地程序._基于QT应用程序打包成可执行程序exe

    [本文属原创,转载请附上原文出处链接.] 众所周知QT编译好的应用程序依赖很多动态链接库,不能方便的在其他PC上使用.这里介绍QT5版本的应用程序打包成可执行EXE的方法. 首先把QT应用程序项目编译 ...

  2. 微信小程序-04-详解介绍.json 配置文件

    致我自己:小程序开发不是简单一两天的事,一两天只能算是了解,有时候看多了会烦,感觉很熟悉了,其实只是对表面进行了解,对编程却知之甚少,小程序开发不是简单的改模板,一两天很多部分改模板可能都做不到,坚持 ...

  3. 解决Windows无法打开exe文件的问题

    昨天因为一点问题我删了一点注册表,结果删了以后.系统无法识别exe文件了.经过查阅资料,最终解决了这个问题.步骤如下 1.在桌面空白处鼠标右键,弹出的快捷菜单指向"新建",在下一级 ...

  4. 微信小程序四种json配置文件详解

    知识点: app.json配置文件 project.config.json配置文件 sitemap.json配置文件 页面文件夹中的.json配置文件 上片文章讲到 微信小程序有四种json配置文件, ...

  5. java写exe程序实例_2012软考软件设计师辅导:利用JAVA执行本地EXE文件

    曾经为了这样一个需求找了很多资料,今天终于学习到了!如何利用java执行exe文件?使用java类Runtime,每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接. ...

  6. 在网页中执行本地exe程序的两种方式

    一.有时候,需要在 网页上去执行本地的一个EXE文件,如果用javascript ,一般浏览器,由于安全问题,都会禁止掉这个特性.但经过测试,目前在ie,firefox中仍然可以用JS来实现,但在ch ...

  7. asp 执行 exe_EXE程序加密锁下载-EXE程序加密锁电脑版下载v5.0

    exe是Windows电脑上常见的程序运行文件格式,EXE程序加密锁能够将该种类型的文件进行加密,帮助用户控制某个软件的使用权限,它的体积可以忽略不计,操作方法也很简单. 软件特色 EXE程序加密锁是 ...

  8. Java | 通过程序代码打开EXE应用或者文件

    通过Java后台调用本地exe程序 JAVA后台无法实现打开客户端上的应用程序以及文件,是由于JAVA本身的安全性限制,只能打开服务器本地的程序以及文件,直接上代码,测试运行即可. import ja ...

  9. asp调用打开exe文件

    让IE6.0执行EXE文件的网页             说到要做一个让网页让IE6.0浏览的时候来执行空间下的一个EXE文件的方法要和以前写过的5.0的方法是完全不一样的了,5.0的总体思路是用一个 ...

  10. JS 打开本地程序及文件

    在网页打开本地应用程序示例: 一.在本地注册表自定义协议:以自定义调用Viso为例 1.在HKEY_CLASSES_ROOT下添加项ZVISIO. 2.修改ZVISIO项下的"(默认)&qu ...

最新文章

  1. 40个姿态估计优秀开源项目汇总
  2. Firefox无法加载12306自家证书
  3. matlab确定污染源位置,确定污染源的位置
  4. 世界大学排名:12所中国大学科研实力进百强
  5. 用python编制一个的类_常见面试题整理--Python概念篇
  6. SpringMVC 返回json的两种方式
  7. linux下修改max_user_processes和open_file的最大值
  8. 如何格式化电脑_如何将c盘格式化,垃圾文件太多,不知道怎么办
  9. 搭建linux环境的tomcat服务器
  10. unix学习笔记1 read () write()
  11. windows系统bat批处理 开机一键多个程序
  12. 读《scikiit-learn机器学习》第七章_决策树
  13. IntelliJ IDEA For Mac 快捷键,够骚,速度收藏!
  14. MYSQL授权root远程访问
  15. MySQL使用简单教程
  16. php生成数字订单号,php生成订单号函数
  17. c语言转职,救世之树R和C的意义新手详解 职业和技能的转职
  18. 云原生kubernetes五 :pod创建流程
  19. 推荐几个2021年App数据统计平台,分析数据运营必备工具
  20. 狂神学习系列14:SpringCloud

热门文章

  1. 简单聊一下const
  2. 【Codeforces AIM Tech Round 4 (Div. 2) C】
  3. UML/ROSE学习笔记系列一:建模原理、概念
  4. 一个例子说明数据库union all的作用
  5. python覆盖数据库重复数据_如何在数据库中插入唯一数据/处理重复数据
  6. php留言板源码免mysql_php留言本源码-夏日PHP+Mysql留言本下载 v0.3免费版--pc6下载站...
  7. 藏不住了,Flink 未来发展的最新方向在这里!
  8. eclipse下androidannotations开发环境搭建
  9. 提示overwrite是什么意思_Linux Shell 提示符#和$表示什么意思?
  10. 超级计算机燕 排名,特斯拉超级计算机算力全球第五,展现无人驾驶领域野心...