Ответ 1
Это не кажется хорошей идеей, несмотря ни на что, но меняйте пространства имен и полностью квалифицируйте свои обычаи.
В противном случае, почему бы вам просто не ссылаться на одну DLL?
У меня есть 1 DLL в .Net 3.5 framework и еще один в 2.0. Класс ListBoxItem
существует в 2.0, и я связал класс в DLL 3.5 в том же пространстве имен.
Когда я пытаюсь скомпилировать, я получаю ошибку "существует в обеих". Как я могу скомпилировать это и поддерживать ту же структуру.
Я не хочу ссылаться на 2.0 DLL на 3.5, чтобы устранить эту проблему, я хочу, чтобы эти библиотеки были разделены.
Это не кажется хорошей идеей, несмотря ни на что, но меняйте пространства имен и полностью квалифицируйте свои обычаи.
В противном случае, почему бы вам просто не ссылаться на одну DLL?
Это также подходящее решение, где вы можете определить, какой тип использовать в ваших целях:
fooobar.com/questions/159380/...
Вы не можете использовать полностью квалифицированные имена при работе с методами расширения и т.д.
Разделите их на два разных решения: одно для .NET 2.0 и другое для .NET 3.5. В противном случае, как .NET знает, как загрузить какой?
Старый поток, но хотел добавить в другой экземпляр, где произошла эта проблема. Был 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