ASP.NET Core - Project.Json

在本章中,我们将讨论 project.json 文件。 该文件使用 JavaScript 对象表示法来存储配置信息,并且该文件才是 .NET 应用程序的真正核心。如果没有此文件,您将不会拥有 ASP.NET Core 项目。 在这里,我们将讨论该文件的一些最重要的特性。 让我们双击 project.json 文件。

双击 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,然后选择"Manage NuGet packages"。 您现在可以看到当前安装的软件包。

Installed Packages

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

MVC Framework

如果您现在使用"Install"安装按钮安装此包,则此包将存储在 project.json 中。 框架部分是 project.json 的另一个重要部分,该部分告诉 ASP.NET 您的应用程序可以使用哪些 .NET 框架。

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

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

  • 许多版本的 Windows 操作系统都包含同一个 .NET 框架。

  • 它是已经存在 15 年的 .NET 框架,它包括执行从 Web 编程到桌面编程的所有工作的框架。

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

  • "netcoreapp1.0" 是 .NET Core 框架。 它是一个跨平台框架,可以在各种平台上工作,不仅是 Windows,还包括 OS X 和 Linux。

  • 此框架的功能少于完整的 .NET 框架,但它确实具有我们进行 ASP.NET Core Web 开发所需的所有功能。