我刚刚完成了一个小应用程序,使用.NET核心来查看。
我在发布的时候,在发布目录中有66个文件!
我的应用程序本身就是一个47 Ko dll。好的,我使用efcore和newtonsoft,但是我要部署各种dll (如)的14 Mo。
同样的.NET (而不是核心)应用程序会轻得多。
我的问题是:我错过了什么,因为根据.NET核心应用程序部署的说法
部署包的大小很小。您只需部署应用程序及其依赖项,而不是.NET核心本身。
发布于 2017-02-19 22:14:54
这是正确的,没什么好担心的。与.NET框架不同,.NET核心是模块化的,通过NuGet获取。因此,不需要安装fat运行时。
在.NET核心中有两种主要类型的应用程序:
便携式应用
可移植应用程序需要安装运行时。不属于运行时的所有内容都将作为包提供。
或者更具体地说:Microsoft.NETCore.App或NETStandard.Library中没有包含的所有内容(都是只引用公共运行时库的元包)或它的依赖项之一将通过nuget下载并随应用程序一起打包。
自包含应用程序
自包含的应用程序允许您运行和部署安装框架的.NET核心应用程序w/o。在本例中,所有依赖项(包括运行时程序集)都将与应用程序一起打包。这允许多个应用程序使用不同版本的.NET Core /o并行运行,即影响程序功能的更新。
此外,您还具有本机依赖项,它依赖于本机库(即Linux上的OpenSSL或Windows上的CryptoAPI ),这些库也将通过nuget提供并打包在您的部署中。
发布于 2017-02-19 22:18:25
它的重量很轻,因为你不需要在运行应用程序的机器上安装大规模的.NET框架。
我刚刚在C:\Windows\Microsoft.NET\Framework64\v4.0.30319中查看了我的本地机器,它是582个文件和将近200 MB。
如果您使用自包含部署(SCD)方法,那么您甚至将超过66个文件,但您甚至不需要安装.NET核心运行时-使它真正独立(即“自我包含”)。
https://stackoverflow.com/questions/42333411
复制相似问题