因此,假设您有3个项目:
ProjectA - Class Library
ProjectB - Class Library
ProjectC - Console Application
现在让我们说ProjectB
使用ProjectA
的DLL,ProjectC
使用ProjectB
的DLL。
目前,我必须为ProjectB
添加对ProjectA
和ProjectC
的引用。
有没有办法可以避免这种情况?
答案 0 :(得分:0)
如果项目C没有直接使用项目A中的任何类,则不需要将项目C引用到项目A.
在运行时,您仍然需要Project A dll。
澄清“直接使用” - 项目C的代码中对类,接口,结构的任何引用 - 在项目A中定义的任何内容,以及对项目B中定义的类或接口的引用,但是继承自项目A中定义的基类/接口。
这是使用DI(依赖注入)时的方法 - 项目B是app(C)和服务实现(A)之间的契约。它包含接口和POCO。
编译时间应用程序只知道合同,运行时DI容器加载实现。更改实现不需要重新编译,可以通过交换dll来完成。
答案 1 :(得分:0)
没有其他办法。您必须在C中添加B和B的引用中的A引用,否则VS.NET将如何知道要使用哪个类库? 但是,我认为你不需要A中的A和B的引用。如果构建不成功,请检查代码 - 你可能在C中的某个地方使用A类。