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

Gbp*_*bps 0 c# alias types reference

我有两个不同的文件,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时不会导致冲突?

实际的错误消息是 The type Foo in Foo1.cs conflicts with the imported type Foo in Foo2.cs

谢谢你的帮助!

Jos*_*osh 5

你以某种方式设法让Foo1.exe引用不引用Foo1.exe的Foo2.dll的不同副本.因为C#编译器会阻止你做你想要做的事情 - 这就是创建循环引用.

因此,你的甚至编译的事实是侥幸,你应该尝试不同的方法.

您需要将Foo1.exe和Foo2.dll共有的类隔离到第三个程序集Foo3.dll中,该程序集由两者引用.然后Foo3.dll应该引用既不 Foo1.exe或Foo2.dll.