Среда, 13 Ноября 2024, 11:01

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Конфликт библиотек.
ArtemSДата: Понедельник, 28 Января 2019, 13:49 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Возник конфликт библиотеки Newtonsoft.Json.dll и mscorlib.dll ...
Типа и там и там используется System и нужный мне метод Action.

Если кто знает как можно указать какую конкретно библиотеку использовать и чтобы отладчик Unity не ругался, типа Action используется дважды, подскажите. lovegcup


хуяк, хуяк и в продакшн

Сообщение отредактировал 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 crazy crazy crazy crazy

Добавлено (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`, баг это или целенаправленное отключение пока не известно, да и не особо интересно ибо это костыли. Ну не хотите - не собирайте, я не расстроюсь :D
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг