ASP.NET Core - Project.Json

在本章中,我们将讨论 project.json 文件.此文件使用JavaScript对象表示法来存储配置信息,而这个文件实际上是.NET应用程序的核心.没有此文件,您将没有ASP.NET Core项目.在这里,我们将讨论该文件的一些最重要的功能.让我们双击 project.json 文件.

Double单击Project JSon

目前,project.json文件中的默认代码实现如下 :

{
   "dependencies": {
      "Microsoft.NETCore.App": {
         "version": "1.0.0",
         "type": "platform"
      },
      "Microsoft.AspNetCore.Diagnostics": "1.0.0",
      "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
      "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
      "Microsoft.Extensions.Logging.Console": "1.0.0"
   },
   "tools": {
      "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
   },
   "frameworks": {
      "netcoreapp1.0": {
         "imports": ["dotnet5.6", "portable-net45+win8"]
      }
   },
   "buildOptions": {
      "emitEntryPoint": true,
      "preserveCompilationContext": true
   },
   "runtimeOptions": {
      "configProperties": {
         "System.GC.Server": true
      }
   },
   "publishOptions": {
      "include": ["wwwroot", "web.config" ]
   },
   "scripts": {
      "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath%
         --framework %publish:FullTargetFramework%" ]
   }
}

正如我们所见,我们在此文件的顶部有版本信息.这是您的应用程序在构建时使用的版本号.

  • 版本是1.0.0,但最多这个文件的重要部分是依赖项.

  • 如果你的应用程序要做任何有用的工作,那么你需要库和框架来完成这项工作,这样存储和从数据库中检索数据或呈现复杂的HTML.

  • 使用此版本的ASP.NET Core,所有依赖项都通过NuGet进行管理包管理器.

  • NuGet已经在.NET领域工作了几年,但现在管理所有依赖项的主要方法是使用库和框架包装为NuGet包.

  • 您的应用程序所需的所有顶级NuGet包都将存储在此project.json文件中.

"Microsoft.AspNetCore.Diagnostics": "1.0.0", 
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
"Microsoft.Extensions.Logging.Console": "1.0.0

您可以看到我们在此文件中有一些依赖项,确切的依赖项可能会在ASP.NET的最终版本中发生变化.当你想添加一个新的依赖项时,比如ASP.NET MVC框架,你可以轻松输入这个project.json文件,你还可以得到一些 IntelliSense 帮助,不仅包括包名,还包括还有版本号,如下面的截图所示.

IntelliSense

您还可以通过右键单击解决方案资源管理器中的引用来使用UI,然后选择管理NuGet包.您现在可以看到当前安装的软件包.

已安装软件包

这些包与project.json文件中的包相同,您也可以访问浏览器并添加其他包,包括预先发布的包,比方说,安装到此项目中的MVC框架.

MVC Framework

如果您现在使用"安装"按钮安装此软件包,然后这个包将存储在project.json中. frameworks部分是project.json的另一个重要部分,本节告诉ASP.NET你的应用程序可以使用哪些.NET框架.

"frameworks": { 
   "netcoreapp1.0": { 
      "imports": [ 
         "dotnet5.6", 
         "portable-net45+win8" 
      ] 
   } 
},

在这种情况下,您会看到" netcoreapp1.0 "是在项目中使用的框架,您还可以包含安装Visual Studio时安装的完整.NET Framework.

  • 许多版本的Windows操作系统都包含相同的.NET Framework.

  • .NET Framework已经存在了15年它包括从Web编程到桌面编程的所有框架.

  • 这是一个仅适用于Windows的庞大框架.

  • "netcoreapp 1.0"是.NET Core框架.它是一个跨平台的框架,可以在各种平台上运行,不仅仅是Windows,还有OS X和Linux.

  • 这个框架的功能少于完整的.NET框架,但它确实具有ASP.NET Core开发所需的所有功能.