c# - 关于.net core应用的轻量级

标签 c# .net asp.net-core

我刚刚完成了一个小应用程序,使用.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 提供并打包在您的部署中。

关于c# - 关于.net core应用的轻量级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42333411/

相关文章:

c# - 设置中的 XDocument

c# - 在一天中的特定时间触发事件的好方法?

c# - 使用 DRY 和分而治之原则链接的异步方法

c# - 整数 x = 10; x += x--;在 .Net 中 - 为什么?

logging - ASP.Net Core 2.0 和日志记录

c# - 在 Visual Studio 2019 中键入时,如何获取第 3 方类的 IntelliSense 提示?

c# - `InstallPixels()` 和 `SetPixels()` 中的 `SkiaSharp.SKBitmap` 有什么区别?

c# - 事务性 CloudBlob

c# - 如何添加通用依赖注入(inject)

c# - asp.net 5/mvc 6 中的 PushStreamContent 不工作