摘要:本文主要向大家介绍了C#编程之.NETCore部署中你不了解的框架依赖与独立部署,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
本文主要向大家介绍了C#编程之.NETCore部署中你不了解的框架依赖与独立部署,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
框架依赖的部署:顾名思义,依赖框架的部署(FDD)依赖目标系统上存在共享系统级版本的.NETCore。由于已存在.NETCore,因此应用在.NETCore安装程序间也是可移植的。应用仅包含其自己的代码和任何位于.NETCore库外的第三方依赖项。FDD包含可通过在命令行中使用dotnet实用程序启动的.dll文件。例如,dotnetapp.dll就可以运行一个名为app的应用程序。对于FDD,仅部署应用程序和第三方依赖项。不需要部署.NETCore,因为应用将使用目标系统上存在的.NETCore版本。这是定目标到.NETCore的.NETCore和ASP.NETCore应用程序的默认部署模型。
独立部署:与FDD不同,独立部署(SCD)不依赖目标系统上存在的共享组件。所有组件(包括.NETCore库和.NETCore运行时)都包含在应用程序中,并且独立于其他.NETCore应用程序。SCD包括一个可执行文件(如Windows平台上名为app的应用程序的app.exe),它是特定于平台的.NETCore主机的重命名版本,还包括一个.dll文件(如app.dll),而它是实际的应用程序。对于独立部署,可以部署应用和所需的第三方依赖项以及生成应用所使用的.NETCore版本。创建SCD不包括各种平台上的.NETCore本机依赖项,因此运行应用前这些依赖项必须已存在。从NETCore2.1SDK(版本2.1.300)开始,.NETCore支持修补程序版本前滚。在创建独立部署时,.NETCore工具会自动包含你的应用程序所指向的.NETCore版本的最新服务的运行时。(最新服务的运行时包括安全修补程序和其他bug修复程序。)服务的运行时不需要存在于你的生成系统上;它会从NuGet.org自动下载。FDD和SCD部署使用单独的主机可执行文件,使你可以使用发布者签名为SCD签署主机可执行文件。
上面已经说了,可以将.NETCore应用程序部署为依赖框架的部署或独立部署,前者包含应用程序二进制文件,但依赖目标系统上存在的.NETCore,而后者同时包含应用程序和.NETCore二进制文件。
要使用一个或多个第三方依赖项来部署依赖框架的部署,需要这些依赖项都可供项目使用。在运行dotnetrestore命令之前,还需执行额外两个步骤:
与应用程序的文件一样,发布过程将生成包含应用调试信息的程序数据库(.pdb)文件。该文件主要用于调试异常。可以选择不使用应用程序文件打包该文件。但是,如果要调试应用的发布版本,则应保存该文件。可按照任何喜欢的方式部署已发布的文件。例如,可以使用简单的copy命令将其打包为Zip文件,或者使用选择的安装包进行部署。下面是此项目完整的csproj文件。
备注:从.NETCore2.0开始,无需运行dotnetrestore,因为它由所有需要还原的命令隐式运行,如dotnetnew、dotnetbuild和dotnetrun。
本文首先介绍了框架依赖与独立部署的概念,然后分别介绍了框架依赖与独立部署的优缺点让大家加深理解!最后通过一个实例来讲述了如何进行框架依赖与独立部署。采用的实例使用的是控制台的方式进行的,当然你也可以使用vs进行发布。