Конфликт библиотек.
| |
ArtemS | Дата: Понедельник, 28 Января 2019, 13:49 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Возник конфликт библиотеки Newtonsoft.Json.dll и mscorlib.dll ... Типа и там и там используется System и нужный мне метод Action.
Если кто знает как можно указать какую конкретно библиотеку использовать и чтобы отладчик Unity не ругался, типа Action используется дважды, подскажите.
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Понедельник, 28 Января 2019, 13:49 |
|
| |
drcrack | Дата: Понедельник, 28 Января 2019, 14:11 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| да просто указывай целиком имя, т.е. не Action а System.Action или [другойнеймспейс].Action если в файле используется только 1 вариант, можно вверху после остальных using дописать using Action = System.Action (ну или не System)
не, кажется я не так понял. че еще раз прочитаю вопрос) покажи ошибку целиком PS я вообще не понимаю какая неведомая сила не дает ее сразу скопировать вместо того чтобы своими словами обьяснять "ну там типо там и там чето где-то используется ну и вот"
Сообщение отредактировал drcrack - Понедельник, 28 Января 2019, 14:21 |
|
| |
ArtemS | Дата: Понедельник, 28 Января 2019, 14:28 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| drcrack, тут вся проблема в том, что сам отладчик Unity ругается на то, что в библиотеках с одним namespace System используются метод Action. Так то понятно, в using или сразу в коде прямой путь дал и все. Я пытался через extern alias сделать. В свойствах на библиотеку давал ей псевдоним, но почему-то в VS все нормально, а в редакторе все равно юнька ругается. Пишет типа рефенерс не настроил. Нашел как это делается, создал файл msc.rsp там указал пути до библиотек и обозвал их по разному......но .....это просто беда... Program Files, а именно там находится mscorlib.dll, идет с пробелом, а эта хрень не воспринимает пробел за пробел, а типа для нее это конец строчки.. ставлю "_" , и все равно не пашет... в общем я в пичалькеДобавлено (28 Января 2019, 14:42) --------------------------------------------- так...нашел как это сделать..типа "Program Files" забить, но все равно вылезло: В юнити
Код The imported type `System.Action' is defined multiple times В VS
Код Тип "Action" существует как в "Newtonsoft.Json, Version=4.0.7.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed", так и в "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
хуяк, хуяк и в продакшн
|
|
| |
drcrack | Дата: Понедельник, 28 Января 2019, 14:49 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Newtonsoft.Json, Version=4.0.7.0 на сайте указана дата релиза — 2012 год по-моему ее просто обновить надо и все будет норм ))
|
|
| |
ArtemS | Дата: Вторник, 29 Января 2019, 04:34 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| drcrack, обновлял, не помогает в VS все норм, а отладчик в Unity все равно ругается. Можно как-то ссылаться на конкретную библиотеку ?
хуяк, хуяк и в продакшн
|
|
| |
drcrack | Дата: Вторник, 29 Января 2019, 05:32 | Сообщение # 6 |
старожил
Сейчас нет на сайте
| в юнити включен .net 3.5? попробуй 2.0 если тебе не критично еще попробуй наоборот старые версии, начни с 4.0.2
Цитата Можно как-то ссылаться на конкретную библиотеку ? нельзя, как это ты вообще представляешь? пусть даже ты где-то в своем скрипте "сошлешься", но что делать всему остальному коду который использует System.Action в сотне разных мест, от большинства у которых у тебя даже исходников нет?
Сообщение отредактировал drcrack - Вторник, 29 Января 2019, 05:34 |
|
| |
ArtemS | Дата: Вторник, 29 Января 2019, 05:39 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| drcrack, фишка в том, что мне не нужен Json'овский System.Action. Я бы как-то пространство имен Json'а заменил и все. Вообще нашел как делать, но почему-то юнити не воспринимает все равно. Есть такая фишка, специально сделанная, для использования одинаковых библиотек разных версий
хуяк, хуяк и в продакшн
|
|
| |
drcrack | Дата: Вторник, 29 Января 2019, 05:45 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| Цитата drcrack, фишка в том, что мне не нужен Json'овский System.Action. ну так и поставь старую версию без System, вот я нагуглил что после 4.0.2 оно появилось но это не точно
|
|
| |
ArtemS | Дата: Вторник, 29 Января 2019, 08:42 | Сообщение # 9 |
почетный гость
Сейчас нет на сайте
| drcrack, хрень какая-то...скачал старую версию через нугет, референсы поменял. Вроде, показывает что более старая версия. В VS все без ошибок, а в юньке пишет, что используется две одинаковые библиотеки. Проверил по папкам, все удалено лишнее. Потом опять в VS захожу, а там почемуто референс идет на первую версию, хотя ее в папке нет и в корзине. Проект перезагружаю все равно такая хрень. Даже когда в Plagins вообще нету json'a он пишет что он там есть....."ничего не понимаю" (с)
Добавлено (29 Января 2019, 09:23) --------------------------------------------- однако....юнька оказывается отделько библиотеки проекта копирует в
Код \Library\PlayerDataCache\Data\Managed
Добавлено (29 Января 2019, 09:32) --------------------------------------------- Смог установить старую, но другой библиотеке нужна новая версия Json'a
Добавлено (29 Января 2019, 09:32) ---------------------------------------------
Код error CS1705: Assembly `SignalR.Client.20, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' depends on `Newtonsoft.Json, Version=4.0.7.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' which has a higher version number than referenced assembly `Newtonsoft.Json, Version=3.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Вторник, 29 Января 2019, 09:34 |
|
| |
seaman | Дата: Вторник, 29 Января 2019, 10:38 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Брось Newtonsoft. Она вроде с AOT не дружит. Если мало встроенной, используй Store. Она для Юнити разработана и поддерживает все нормальные платформы Юнити.
ЗЫ: SignalR.Client - это что, библиотека для взаимодействия с концентраторами? https://docs.microsoft.com/ru-ru/aspnet/core/signalr/dotnet-client?view=aspnetcore-2.2 или это: https://github.com/SignalR/SignalR
ЕСли второе, то можно использовать: https://assetstore.unity.com/packages/tools/network/simple-rest-client-and-server-81170 https://assetstore.unity.com/packages/tools/input-management/simple-json-restful-client-91627
Сообщение отредактировал seaman - Вторник, 29 Января 2019, 12:04 |
|
| |
ArtemS | Дата: Вторник, 29 Января 2019, 12:42 | Сообщение # 11 |
почетный гость
Сейчас нет на сайте
| Цитата seaman ( ) https://assetstore.unity.com/packages/tools/network/simple-rest-client-and-server-81170
эту я пытался, но проблема в том, что там есть System.Action()...
От темы ушли, она про как использовать 2 библиотеки с одним namespace, а не костыли выдумывать)
хуяк, хуяк и в продакшн
|
|
| |
Irbis | Дата: Вторник, 29 Января 2019, 12:55 | Сообщение # 12 |
почетный гость
Сейчас нет на сайте
| Цитата От темы ушли, она про как использовать 2 библиотеки с одним namespace, а не костыли выдумывать) А иметь два класса с одинаковой сигнатурой в одном пространстве имен не костыль?) Никак. В одном пространстве имен должен быть только один такой класс. Как компилятор должен определить какой именно вам нужен в данный момент, если их будет несколько.
|
|
| |
drcrack | Дата: Вторник, 29 Января 2019, 13:13 | Сообщение # 13 |
старожил
Сейчас нет на сайте
| Цитата эту я пытался, но проблема в том, что там есть System.Action()... а вот в json его кстати нет, по крайней мере в тех версиях что я щаз открыл в ilspy (9 и 12)
|
|
| |
Irbis | Дата: Вторник, 29 Января 2019, 13:16 | Сообщение # 14 |
почетный гость
Сейчас нет на сайте
| Глянул между строк Newtonsoft, нет в ней этого неймспейса, все нормально. Если он и использует стандартный System.Action и что, это проблем создать не должно. Вы точно все правильно подключаете? Или вы свою mscorlib.dll положили в проект? Если да, то зачем?
Сообщение отредактировал Irbis - Вторник, 29 Января 2019, 15:21 |
|
| |
drcrack | Дата: Вторник, 29 Января 2019, 13:18 | Сообщение # 15 |
старожил
Сейчас нет на сайте
| короче создай новый проект и добавляй плагины (+скрипты использующие их хоть как-то) по одному пока не найдешь какая комбинация приводит к этой ошибке
|
|
| |
ArtemS | Дата: Вторник, 29 Января 2019, 17:26 | Сообщение # 16 |
почетный гость
Сейчас нет на сайте
| Irbis, https://github.com/DashW/UnityExternAlias но почему-то у меня эта хрень не пашет.
хуяк, хуяк и в продакшн
|
|
| |
Irbis | Дата: Вторник, 29 Января 2019, 17:39 | Сообщение # 17 |
почетный гость
Сейчас нет на сайте
| А вы можете просто собрать минимальный проект, закинуть туда библиотеки чтобы была такая-же ошибка как у вас в проекте и залить на какой-нить гугл-диск или еще куда-то? Чтобы можно было скачать и посмотреть на проблему. А то этак мы долго будем пальцем в небо тыкать) Сдается мне json-библиотека тут ни при чем, либо не правильно собрана dll-ка, но это надо смотреть)
Сообщение отредактировал Irbis - Вторник, 29 Января 2019, 17:55 |
|
| |
ArtemS | Дата: Среда, 30 Января 2019, 10:19 | Сообщение # 18 |
почетный гость
Сейчас нет на сайте
| Irbis, ссылку которую я кинул сообщением выше можно брать за пример моей проблемы, потому что его проект у меня тоже не пашет
хуяк, хуяк и в продакшн
Сообщение отредактировал ArtemS - Среда, 30 Января 2019, 10:20 |
|
| |
drcrack | Дата: Среда, 30 Января 2019, 13:43 | Сообщение # 19 |
старожил
Сейчас нет на сайте
| его проект для 5.5, я не удивлен что он щаз не пашет, с тех пор все много раз поменяли и как обычно бывает у юнити сломали то что раньше работало я правда все равно не понимаю как ты собираешься использовать extern alias и как это должно помочь с кривыми зависимостями
Сообщение отредактировал drcrack - Среда, 30 Января 2019, 14:13 |
|
| |
Irbis | Дата: Среда, 30 Января 2019, 15:13 | Сообщение # 20 |
почетный гость
Сейчас нет на сайте
| А при чем тут тот проект? Он не работает потому что сейчас (начиная с 2018.3 вроде) впринципе не работает `-reference:Alias`, баг это или целенаправленное отключение пока не известно, да и не особо интересно ибо это костыли. Ну не хотите - не собирайте, я не расстроюсь
|
|
| |
|