如何消除与相互引用的库和可执行文件的类型冲突?

问题描述

| 我有两个不同的文件,Foo1.exe和Foo2.dll。 当我尝试使用Foo1.exe中的Foo2.dll中声明的对象时,一切都会按预期进行。 当我尝试使用Foo2.dll中的Foo1.exe中声明的对象时,所有内容都会按预期进行编译。 但是,当我尝试将对象从Foo1.exe传递到Foo2.dll时,Foo1.exe无法编译,因为它的类型与Foo2.dll中的对象冲突,该对象实际上并不存在,而只是从Foo1.exe中引用的。 如何使Foo2.dll可以引用Foo1.exe,但是在编译Foo1.exe时这些类型不会引起冲突? 实际错误信息是“ 0” 谢谢你的帮助!     

解决方法

您已经设法使Foo1.exe引用了不引用Foo1.exe的Foo2.dll的另一个副本。因为C#编译器将阻止您执行您想做的事情-这是创建循环引用。 因此,即使您正在编译的事实也是偶然的,您应该尝试其他方法。 您需要将Foo1.exe和Foo2.dll通用的类隔离到第三个程序集Foo3.dll中,这两个程序集均被引用。然后,Foo3.dll不应引用Foo1.exe或Foo2.dll。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...