我刚刚完成一个小应用程序,使用.NET Core查看。
我正处于发布时刻,在发布目录中有66个文件!
我的应用本身是 47 Ko dll。好吧,我使用efcore和newtonsoft json,但我有 14 Mo 的各种dll(例如System.Security.Cryptography.OpenSsl.dll)进行部署。
同样的.NET(非核心)应用程序会更轻松。
我的问题是:我错过了什么,因为根据.NET Core Application Deployment:
部署包的大小很小。您只需要部署 你的应用程序及其依赖项,而不是.NET Core本身。
答案 0 :(得分:4)
这是正确的,没有什么可担心的。与.NET Framework不同,.NET Core是模块化的,并通过NuGet获取。因此,不需要安装胖运行时。
.NET Core中有两种主要类型的应用程序:
便携式应用程序需要安装运行时。不属于运行时的所有内容都将作为包提供。
或者更具体一点:Microsoft.NETCore.App或NETStandard.Library中未包含的所有内容(两者都是仅引用常见运行时库的元数据包)或其中一个依赖项,将通过以下方式下载: nuget并与您的应用程序一起打包。
自包含应用程序允许您在不安装框架的情况下运行和部署.NET Core应用程序。在这种情况下,所有依赖项(包括运行时程序集)将与您的应用程序一起打包。这允许多个应用程序使用不同版本的.NET Core并排运行,即影响程序功能的更新。
此外,您还具有本机依赖项,这依赖于本机库(即Linux上的OpenSSL或Windows上的CryptoAPI),它们也将通过nuget发布并打包在您的部署中。
答案 1 :(得分:1)
它的重量很轻,因为您不需要在运行应用程序的计算机上安装大量的.NET Framework。
我只是在C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319中查看我的本地计算机,它是582个文件,接近200 MB。
如果您使用自包含部署(SCD)方法,那么您甚至可以使用超过66个文件,但是您甚至不需要安装.NET Core Runtime - 这使它真正独立(即&# 34;自包含"。)