我刚刚完成了一个小应用程序,使用.NET Core来看看。
我正在发布时刻,发布目录中有 66 个文件!
我的应用程序本身是一个 47 Ko dll。好吧,我使用 efcore 和 newtonsoft json,但是我有 14 Mo 各种 dll(例如 System.Security.Cryptography.OpenSsl.dll)要部署。
相同的 .NET(非 Core)应用程序会轻得多。
我的问题是:我错过了什么,因为根据.NET Core Application Deployment :
The size of your deployment package is small. You only have to deploy your app and its dependencies, not .NET Core itself.
请您参考如下方法:
这是正确的,无需担心。与 .NET Framework 不同,.NET Core 是模块化的,并通过 NuGet 获取。因此不需要安装胖运行时。
.NET Core 中有两种主要类型的应用程序:
可移植应用程序
可移植应用程序需要安装运行时。所有不属于运行时的内容都将作为包提供。
或更具体地说:Microsoft.NETCore.App 中未包含的所有内容或NETStandard.Library (两者都是仅引用常见运行时库的元包)或其依赖项之一,将通过 nuget 下载并与您的应用程序打包在一起。
独立的应用程序
独立的应用程序允许您运行和部署 .NET Core 应用程序,而无需安装框架。在这种情况下,所有依赖项(包括运行时程序集)都将与您的应用程序一起打包。这允许多个应用程序使用不同版本的 .NET Core 并行运行,即不会影响程序功能的更新。
此外,您还具有 native 依赖项,这些依赖项依赖于 native 库(即 Linux 上的 OpenSSL 或 Windows 上的 CryptoAPI),这些库也将通过 nuget 提供并打包在您的部署中。


