Удаление и поиск зависимостей DLL

Общие вопросы о Unity3D

Удаление и поиск зависимостей DLL

Сообщение hromoyDron 19 авг 2019, 00:14

Добрый день.

Со временем мой проект оброс кучей dll. Сейчас их размер в сборке 13мб.
Некоторые библиотеки я испольную напрямую через using. Но некоторые я даже не знаю откуда могли взяться.
Как понять что именно вызвало зависимость и как можно удалить ненужные библиотеки?

Скрытый текст:
Dependency assembly - System.Diagnostics.StackTrace.dll
Dependency assembly - System.Globalization.Extensions.dll
Dependency assembly - System.Runtime.Serialization.Xml.dll
Dependency assembly - System.Xml.XPath.XDocument.dll
Dependency assembly - netstandard.dll
Dependency assembly - Mono.Security.dll
Dependency assembly - System.ComponentModel.Composition.dll
Dependency assembly - System.Configuration.dll
Dependency assembly - System.Core.dll
Dependency assembly - System.Data.dll
Dependency assembly - System.Drawing.dll
Dependency assembly - System.EnterpriseServices.dll
Dependency assembly - System.IO.Compression.FileSystem.dll
Dependency assembly - System.IO.Compression.dll
Dependency assembly - System.Net.Http.dll
Dependency assembly - System.Numerics.dll
Dependency assembly - System.Runtime.Serialization.dll
Dependency assembly - System.ServiceModel.Internals.dll
Dependency assembly - System.Transactions.dll
Dependency assembly - System.Xml.Linq.dll
Dependency assembly - System.Xml.dll
Dependency assembly - System.dll
Dependency assembly - mscorlib.dll
Dependency assembly - UnityEngine.UI.dll
Dependency assembly - UnityEngine.Networking.dll
Dependency assembly - UnityEngine.Timeline.dll
Dependency assembly - Unity.Analytics.DataPrivacy.dll
Dependency assembly - Unity.TextMeshPro.dll
_Defentures - mid-core 2d defense strategy.
hromoyDron
UNец
 
Сообщения: 43
Зарегистрирован: 28 июн 2018, 19:10

Re: Удаление и поиск зависимостей DLL

Сообщение DbIMok 19 авг 2019, 09:10

все что в Plugins положили то и попало. можно открыть dll с кодом через dnSpy и посмотреть список "прямых" зависимостей. если рефлексию не используете, то все остальные можно удалить из Plugins
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Удаление и поиск зависимостей DLL

Сообщение hromoyDron 19 авг 2019, 21:58

Для эксперимента полностью удалил папку Plugins. Пакпки Temp и Library тоже чистил. Библиотек в сборке меньше не стало.

Проверил на пустом проекте. Даже абсолютно пустой проект тащит с собой приличное количество dll.
Хотя как я знаю базовым является только mscorlib.dll

Список dll в пустом проекте. Откуда тут даже System.Xml вообще непонятно. (но в основном проекте я ей пользуюсь)
Скрытый текст:
Dependency assembly - Mono.Security.dll
Dependency assembly - System.Configuration.dll
Dependency assembly - System.Core.dll
Dependency assembly - System.Xml.dll
Dependency assembly - System.dll
Dependency assembly - mscorlib.dll
Dependency assembly - UnityEngine.UI.dll
Dependency assembly - UnityEngine.Networking.dll
Dependency assembly - UnityEngine.Timeline.dll
_Defentures - mid-core 2d defense strategy.
hromoyDron
UNец
 
Сообщения: 43
Зарегистрирован: 28 июн 2018, 19:10

Re: Удаление и поиск зависимостей DLL

Сообщение DbIMok 19 авг 2019, 23:25

hromoyDron писал(а):Даже абсолютно пустой проект

абсолютно пустой это с отключенными packages in project и built-in packages. но это не поможет
hromoyDron писал(а):Хотя как я знаю базовым является только mscorlib.dll

где это написано? пошлем юнитекам багрепорт, ткнем носом в их какашку
hromoyDron писал(а):System.Xml

там взаимозависимости, смотрите в dnSpy, dotPeek. у меня нет хорошего ответа на этот вопрос. если они вам не нужны - удалите
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Удаление и поиск зависимостей DLL

Сообщение seaman 20 авг 2019, 00:11

Ради интереса сделал совсем пустой проект. Т.е. убрал все пакеджи:
Изображение
Убрал все встроенные пакеджи:
Изображение
Пустая сцена и пустой проект
И обнаружил несколько десятков dll в сборке. Самое интересное, что там все выключенные модули!
Изображение
Т.е. включаешь их, выключаешь - пофиг. Они все равно в билде.

На всякий случай проверил manifest. В нем, как и ожидалось один package-manager-ui:
Синтаксис:
Используется javascript
{
  "dependencies": {
    "com.unity.package-manager-ui": "2.1.2"
  }
}


Это в 2018.3 и в 2019.1
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Удаление и поиск зависимостей DLL

Сообщение hromoyDron 20 авг 2019, 01:00

И что в таком случае делать? Насильно удалять dll руками?

Правильно ли я понимаю, что для удаления нужно в файле Assembly-CSharp-Editor найти путь интересующей библиотеки и удалить ее именно по этому адресу?
_Defentures - mid-core 2d defense strategy.
hromoyDron
UNец
 
Сообщения: 43
Зарегистрирован: 28 июн 2018, 19:10

Re: Удаление и поиск зависимостей DLL

Сообщение DbIMok 20 авг 2019, 02:53

hromoyDron писал(а):Насильно удалять dll руками?

про удаление это была шутка. нельзя их удалять
seaman писал(а):Самое интересное, что там все выключенные модули!

я предупреждал - не поможет. нельзя отключить managed либы потому что они жестко прописаны в зависимостях UnityEngine.dll. эта модульность сделана для il2cpp. там отключение ненужных модулей реально дает выигрыш в размере (у меня было что-то порядка -0.5 МБ размера apk)
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Удаление и поиск зависимостей DLL

Сообщение hromoyDron 20 авг 2019, 03:08

в итоге dll в пустом проекте занимают 9мб
получается с этим ничего не сделать и остается только смириться?
_Defentures - mid-core 2d defense strategy.
hromoyDron
UNец
 
Сообщения: 43
Зарегистрирован: 28 июн 2018, 19:10

Re: Удаление и поиск зависимостей DLL

Сообщение DbIMok 20 авг 2019, 05:34

попробуйте собрать il2cpp билд. в моем случае это увеличивает размер apk примерно на мегабайт. у вас может уменьшит
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Удаление и поиск зависимостей DLL

Сообщение hromoyDron 20 авг 2019, 12:51

Я собираю билд под WebGL и насколько понимаю, WebGL поддерживает только IL2CPP и даже не дает выбора.
_Defentures - mid-core 2d defense strategy.
hromoyDron
UNец
 
Сообщения: 43
Зарегистрирован: 28 июн 2018, 19:10

Re: Удаление и поиск зависимостей DLL

Сообщение DbIMok 20 авг 2019, 15:37

где в WebGL билде .dll?
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Удаление и поиск зависимостей DLL

Сообщение AngryCat 20 авг 2019, 17:22

Чтобы убрать ненужные dll:
Изображение
И в Edit References убери ненужные dll :/
Здесь могла бы быть ваша реклама.
Аватара пользователя
AngryCat
Старожил
 
Сообщения: 716
Зарегистрирован: 20 июл 2018, 22:29
Skype: Дискорд - Флеш#4099

Re: Удаление и поиск зависимостей DLL

Сообщение DbIMok 20 авг 2019, 17:33

AngryCat писал(а):И в Edit References убери ненужные dll

это сработало бы, если бы ты их вручную добавлял удалял. но так как этим занимается юнити автоматически...
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Удаление и поиск зависимостей DLL

Сообщение hromoyDron 21 авг 2019, 00:04

DbIMok писал(а):где в WebGL билде .dll?


Где именно зашиты я не знаю, но в консоли во время сборки билда, где выводится информация о размере указано 13мб.

AngryCat писал(а):в Edit References убери ненужные dll :/


Убрал, но эффекта это никакого не дало. Можно хоть System убрать, которую я сам использую, даже ругаться не будет.
_Defentures - mid-core 2d defense strategy.
hromoyDron
UNец
 
Сообщения: 43
Зарегистрирован: 28 июн 2018, 19:10

Re: Удаление и поиск зависимостей DLL

Сообщение IDoNotExist 21 авг 2019, 12:58

hromoyDron писал(а):
DbIMok писал(а):где в WebGL билде .dll?


Где именно зашиты я не знаю, но в консоли во время сборки билда, где выводится информация о размере указано 13мб.

Нет для WebGL такого понятия как .dll.
Спасти положение отчасти может галочка Strip Engine Code (должна быть активна) плюс правильный выбор CompressionFormat.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

След.

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20