ASP.NET Core - project.json



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

Double Click On 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

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

Installed Packages

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

MVC Framework

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

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

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

  • 它与许多版本的 Windows 操作系统一起安装的 .NET Framework 相同。

  • 它是已经存在 15 年的 .NET Framework,它包含从 Web 编程到桌面编程的所有功能的框架。

  • 这是一个庞大的框架,只能在 Windows 上运行。

  • “netcoreapp1.0”是 .NET Core 框架。它是一个跨平台框架,可以在各种平台上运行,不仅限于 Windows,还包括 OS X 和 Linux。

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

广告