Тип <type> существует в обеих библиотеках DLL

У меня есть 1 DLL в .Net 3.5 framework и еще один в 2.0. Класс ListBoxItem существует в 2.0, и я связал класс в DLL 3.5 в том же пространстве имен.

Когда я пытаюсь скомпилировать, я получаю ошибку "существует в обеих". Как я могу скомпилировать это и поддерживать ту же структуру.

Я не хочу ссылаться на 2.0 DLL на 3.5, чтобы устранить эту проблему, я хочу, чтобы эти библиотеки были разделены.

Ответ 1

Это не кажется хорошей идеей, несмотря ни на что, но меняйте пространства имен и полностью квалифицируйте свои обычаи.

В противном случае, почему бы вам просто не ссылаться на одну DLL?

Ответ 2

Это также подходящее решение, где вы можете определить, какой тип использовать в ваших целях:

fooobar.com/questions/159380/...

Вы не можете использовать полностью квалифицированные имена при работе с методами расширения и т.д.

Ответ 3

Разделите их на два разных решения: одно для .NET 2.0 и другое для .NET 3.5. В противном случае, как .NET знает, как загрузить какой?

Ответ 4

Старый поток, но хотел добавить в другой экземпляр, где произошла эта проблема. Был delaing с проектом, который был преобразован с веб-сайта в веб-приложение в Visual Studio 2010. Я начал получать тип "класс" существует в обоих.../временном ASP.NET/... yada... yada... болтовня.

В моем случае старая страница использовала datagrid для отображения списка дат, но набор данных был списком классов List<MyClass>, а код в .aspx(не код сзади) использовал методологию литья данных элемент для отображения...

<%# ((MyClass)Container.DataItem).MyDate %>

По какой-то причине MyClass запускает ошибку типа. После выполнения полного поиска по всему проекту для любых возможных ссылок на двойные классы и т.д. Не нашел ничего, поэтому в основном решил посмотреть, избавился ли я от приведения и просто пошел со стандартным методом получения значения из DataItem следующим образом:

<%# DataBinder.Eval(Container.DataItem, "MyDate").ToString()%>

И вуаля... больше нет типа существует ошибка. Не слишком уверен, почему это приведет к тому, что указанная выше ошибка проявится (и если у кого-то будет какое-либо понимание, это будет оценено), но проблема исчезла...

Надеюсь, это поможет кому-то...

Dave