【发布时间】:2021-08-25 08:48:09
【问题描述】:
我有一个针对多个框架的 .NET 项目,即
<TargetFrameworks>netstandard2.1;net472</TargetFrameworks>
该项目包含引入 System.* 依赖项的 NuGet 包,例如 System.Memory 和 System.Buffers。
当我构建项目时,它会创建两个输出目录,netstandard2.1 和 net472,这很好。
我很难理解的是为什么net472 输出目录包含 System.* 依赖项?我知道它们被复制到 netstandard2.1 目录,但是当它们可以从机器上的 .NET Framework 安装(即 GAC)中加载时,为什么要为 .NET Framework 目录复制它们?
对于net472 目标,有没有办法排除 System.* dll?
【问题讨论】:
-
通常,编译器在这里所做的事情是正确的。他复制到 net472 文件夹的版本通常比 GAC 中的版本新。编译器可能以这种方式在 .net 框架中使用 .netstandard 文件。如果您没有收到任何运行时错误,一切都很好。
-
问题现在回答了吗?在这种情况下you can accept my reply as answer“关闭”问题。
标签: c# .net .net-4.7.2 .net-standard-2.1