我的 .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
项目调用使用 ExternalLib
的 Infrastructure
方法时,编译器生成以下错误:
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 包的情况下是这样。
我有这个项目的依赖:
Client
[.NET 4.7.2] -> Infrastructure
[.NET Standard 2.0] -> ExternalLib
[dll]
当我尝试从 Client
项目调用使用 ExternalLib
的 Infrastructure
方法时,编译器生成以下错误:
Error CS0012 The type
ClassX
is defined in an assembly that is not referenced. You must add a reference to assemblyExternalLib
是否可以隐式执行?我的意思是不需要显式添加此引用,因为它已经在 Infrastructure
项目中完成。
谢谢
我相信当您最初说 "recursive" 时,您的意思是 "transitive"(根据您最近的编辑)。
.NET,尤其是 .NET Framework 并不真正处理传递引用。正如您所发现的,它要求执行项目明确引用所有依赖项。 "implicit" 引用不会发生。
似乎更好地支持在 .NET Core 中引入传递依赖项,至少在主要依赖项是 Nuget 包的情况下是这样。