【发布时间】:2015-10-05 23:58:57
【问题描述】:
我在 .Net 3.5 框架中有 1 个 DLL,在 2.0 中有另一个。 ListBoxItem 类存在于 2.0 中,我已将 3.5 DLL 中的类链接到同一个命名空间中。
当我尝试编译时,我得到一个“exists in both”错误。我怎样才能编译它并保持相同的结构。
我不想将 2.0 的 DLL 引用到 3.5 来消除这个问题,我希望将这些 DLL 分开。
【问题讨论】:
我在 .Net 3.5 框架中有 1 个 DLL,在 2.0 中有另一个。 ListBoxItem 类存在于 2.0 中,我已将 3.5 DLL 中的类链接到同一个命名空间中。
当我尝试编译时,我得到一个“exists in both”错误。我怎样才能编译它并保持相同的结构。
我不想将 2.0 的 DLL 引用到 3.5 来消除这个问题,我希望将这些 DLL 分开。
【问题讨论】:
无论如何,这似乎都不是一个好主意,但请更改命名空间并完全限定您的用法。
否则,你为什么不只引用一个dll?
【讨论】:
这也是一个相关的解决方案,您可以在其中定义要在 usings 中使用的类型:
https://stackoverflow.com/a/9194582/178620
在处理扩展方法等时不能使用完全限定名称。
【讨论】:
旧线程,但想在另一个发生此问题的实例中添加。正在处理一个在 Visual Studio 2010 中从网站转换为 Web 应用程序的项目。我开始得到类型“类”存在于 .../temporary ASP.NET/...yada...yada...雅达。
在我的例子中,旧页面使用数据网格来显示日期列表,但数据集是类列表 List<MyClass> 并且 .aspx 中的代码(不是后面的代码)使用转换数据的方法显示项目...
<%# ((MyClass)Container.DataItem).MyDate %>
由于某种原因,MyClass 触发了类型错误。在整个项目中对任何可能的双重类引用等进行了全面搜索之后,没有找到任何东西,所以基本上决定看看我是否摆脱了演员表,只是使用从 DataItem 获取值的标准方法,如下所示:
<%# DataBinder.Eval(Container.DataItem, "MyDate").ToString()%>
瞧……没有更多类型存在错误。不太清楚为什么这会导致上述错误表现出来(如果有人有任何见解,将不胜感激)但问题已经消失了......
希望这对某人有所帮助...
戴夫
【讨论】:
将它们分成两种不同的解决方案,一种用于 .NET 2.0,另一种用于 .NET 3.5。否则,.NET 怎么知道如何加载哪个?
【讨论】: