【问题标题】:Many DLLs in System namespace are included when installing library via Nuget通过 Nuget 安装库时,包括系统命名空间中的许多 DLL
【发布时间】:2020-02-08 05:06:09
【问题描述】:

我正在编写一个面向 .NET Standard 2.0 和 .NET Framework 4.6 的 C# 库

在其他项目中(针对 .NET Framework 4.6.1):

  1. 当我直接引用我的库项目时,生成的DLL数量是合理的。

  2. 但是,当我将库发布到 Nuget 并将其安装在其他项目中时,我又得到了 100 多个文件,而且几乎都是 System.*

我想知道这是因为我在将库发布到 NUGET 时配置错误,还是因为其他原因?

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    这是意料之中的。运行时需要这些附加文件,以确保您的 .NET Standard 1.* 库在 .NET Framework 4.6 及更高版本上运行。

    您可以阅读有关此here 的更多信息。

    【讨论】:

    • 从您提供的链接来看,这似乎是 4.7.1 的问题,而在我的案例中,消费者项目的目标是 4.6.1,想知道这是否仍然相关?另外,有什么方法可以消除或减少这些系统 DLL 的数量?
    • 虽然文档谈到了 4.7.1。这同样适用于 4.6.1。引入 .NET Standard 1.* 时,为了在 .NET Framework 4.6.1 上支持它,您需要额外的库来提供 .NET Standard 中未在 .NET Framework 4.6.1 中实现的功能。为了消除对这些 DDL 的需求,最好的办法是针对 .NET Standard 2.0 并构建针对 .NET Framework 4.7.2。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 2016-12-04
    相关资源
    最近更新 更多