在本章中,我们将讨论 project.json 文件.此文件使用JavaScript对象表示法来存储配置信息,而这个文件实际上是.NET应用程序的核心.没有此文件,您将没有ASP.NET Core项目.在这里,我们将讨论该文件的一些最重要的功能.让我们双击 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 帮助,不仅包括包名,还包括还有版本号,如下面的截图所示.
您还可以通过右键单击解决方案资源管理器中的引用来使用UI,然后选择管理NuGet包.您现在可以看到当前安装的软件包.
这些包与project.json文件中的包相同,您也可以访问浏览器并添加其他包,包括预先发布的包,比方说,安装到此项目中的MVC框架.
如果您现在使用"安装"按钮安装此软件包,然后这个包将存储在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开发所需的所有功能.