我的 .Net Standard 库的传递依赖项在哪里没有复制到执行程序集中?

Where isn't the transitive dependencies of my .Net Standard library copied into the executing assembly?

我有这个项目的依赖:

Client [.NET 4.7.2] -> Infrastructure [.NET Standard 2.0] -> ExternalLib [dll]

当我尝试从 Client 项目调用使用 ExternalLibInfrastructure 方法时,编译器生成以下错误:

Error CS0012 The type ClassX is defined in an assembly that is not referenced. You must add a reference to assembly ExternalLib

是否可以隐式执行?我的意思是不需要显式添加此引用,因为它已经在 Infrastructure 项目中完成。

谢谢

我相信当您最初说 "recursive" 时,您的意思是 "transitive"(根据您最近的编辑)。

.NET,尤其是 .NET Framework 并不真正处理传递引用。正如您所发现的,它要求执行项目明确引用所有依赖项。 "implicit" 引用不会发生。

似乎更好地支持在 .NET Core 中引入传递依赖项,至少在主要依赖项是 Nuget 包的情况下是这样。