107 / 65 / 0
Регистрация: 20.08.2013
Сообщений: 321
|
|
1 | |
Как в Visual Studio в проекте .NET CORE 2.0 разрулить трабл одинаковых имён в сборках21.08.2017, 17:35. Показов 2806. Ответов 8
Метки нет (Все метки)
Вобщем обновился сегодня до core 2.0 и вылезла нетипичная проблема которая взорвала мне мозг.
Вобщем использую я сборку CoreCompat.System.Drawing.dll. Вот -> https://github.com/CoreCompat/CoreCompat В ней есть NameSpace -> namespace System.Drawing в котором лежит struct Color. Этот сборка использует сборку System.Drawing.Primitives.dll - которая после обновления так же стала содержать namespace System.Drawing в котором лежит Color. В моём коде произошёл конфликт. Компилятор просто ругается: extern alias TypeColorConflicts; тогда можно будет обращаться примерно так TypeColorConflicts.Color Но компилятору нужно указать параметр /reference:TypeColorConflicts=CoreCompat.System.Drawing.dll - т.е. привязать к ссылке dll И вот где это с делать в C# CORE я изыскался но так и не нашёл. Даже встречал на форумах туманное утверждение что мол этого с CORE нету. Теоретически я могу вызывать компилятор напямую - но имея Студию это есть БРЕД. Прошу помощи так как мозг уже кипит.
0
|
21.08.2017, 17:35 | |
Ответы с готовыми решениями:
8
Отсутствует возможность добавления Модель данных ADO NET EDM в Visual Studio в проекте net core Как открыть файлы в формате visual studio .net 2003 в visual studio net 2002? Net Core 1.0 в Visual Studio 2019 Установка Net Core на Visual Studio 2015 |
12502 / 8687 / 1310
Регистрация: 21.01.2016
Сообщений: 32,633
|
|
21.08.2017, 17:57 | 2 |
developer123, решение простое: в коде, где используются оба класса из конфликтующих пространств имён, использовать полные имена конфликтующих типов.
0
|
107 / 65 / 0
Регистрация: 20.08.2013
Сообщений: 321
|
|
21.08.2017, 18:03 [ТС] | 3 |
Ну есле бы было всё так просто то...
Короче полное имя нужного класса будет System.Drawing.Color Имя класса паразита System.Drawing.Color Сходства не замечаете? Я уже впереди использовал всё что только мог. Ничего не работает. И да Intelesence из вижлы правильно переходит в сборку CoreCompat.System.Drawing.dll есле кликнуть перейти к определению А вот компилятор ругается - говорит что он не знает что именно использовать. Собственно я всё выше описал. Кстати есть ещё типо Drawing модернизированный под CORE 2.0 вот https://github.com/CoreCompat/CoreCompat Я скачал проект - и он оказался каким то недоделанным. Не компилируются и путой он весь. В общем как всегда с проектами с githab. Почем у люди выкидывают туда вещи которые просто не работают по умолчанию?
0
|
12502 / 8687 / 1310
Регистрация: 21.01.2016
Сообщений: 32,633
|
|
21.08.2017, 18:06 | 4 |
developer123, что-то одно из этого нужно завернуть в класс-обёртку (скорее всего в виде фабрики).
Добавлено через 58 секунд Т.е. речь от стороннем классе, который "видит" только один "конфликтный" тип.
0
|
107 / 65 / 0
Регистрация: 20.08.2013
Сообщений: 321
|
|
21.08.2017, 18:52 [ТС] | 5 |
Скажем так - CoreCompat.System.Drawing.dll - сторонний клас который использует сторонний клас который входит в .NET CORE, а именно System.Drawing.Primitives.dll
Исходников у меня нету нормальных поэтому изменить не могу. Я вызываю функцию из сбоки CoreCompat.System.Drawing.dll которая принимает параметр System.Drawing.Color Так вот параметр я не могу передать - потому как компилятор ругается. Собственно вот пример:
0
|
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
|
||||||
21.08.2017, 20:24 | 6 | |||||
Незнаю что вы там и как делаете, но я создал новый проект .NET Core 2.0, вставил туда ваш код
CoreCompat.System.Drawing.v2 с nuget и все компилится без ошибок...
0
|
107 / 65 / 0
Регистрация: 20.08.2013
Сообщений: 321
|
|
21.08.2017, 20:50 [ТС] | 7 |
Не знаю как у вас, но у меня визуал упорно не видела CoreCompat.System.Drawing.v2 (эту версию я нашёл через поиск) , а предлагало старую сборку (1.0.0.0.6 beta)с которой и есть проблема. Ладно мы не гордые - я ему через консоль указал адрес.Но CoreCompat.System.Drawing.v2 у меня не хочет ставится - если ломается то ломается всё и сразу.
вот лог:
0
|
6508 / 4085 / 1605
Регистрация: 09.05.2015
Сообщений: 9,551
|
|
21.08.2017, 20:54 | 8 |
0
|
107 / 65 / 0
Регистрация: 20.08.2013
Сообщений: 321
|
|
21.08.2017, 21:39 [ТС] | 9 |
Ууххх! Я почувствовал себя как в Linux! Обычно там такие танцы с бубном с океаном библиотек. Короче чёртов файл который лежал в недрах nuget не хотел удалятся даже в безопасном режиме. Бля в Win10 войти в безопасный режим это нечто ))) Этот файл открывала сама система. Удалось только 2-ым скаченным унлокером его грохнуть. Первый не справился с задачей.
Короче поставил этот злосчастный пакет. Всё заработало.
0
|
21.08.2017, 21:39 | |
21.08.2017, 21:39 | |
Помогаю со студенческими работами здесь
9
Определить версию .NET Core SDK, поддерживаемую Visual Studio Code Использование Visual Studio Code для разработки ASP.NET Core на х86 ОС Можно ли использовать сборку из .NET Core в обычном ASP .NET проекте ? Объединить .net core и .net framework в одном проекте Окно со свойствами в проекте MFC, как в Visual Studio Как сделать, чтобы js файлы обновлялись в проекте visual studio? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |