问题描述
|
我有两个不同的文件,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。