Определения типа.NET в объединенных блоках (ILMerge)

спам спам спам спам прекрасный спам

6
задан Stefan Moser 5 November 2009 в 18:04
поделиться

2 ответа

Добро пожаловать в опасность строк и строк (физического расположения) в коде ..

Все инструменты такого рода имеют схожие проблемы, и им лучше быть умными, как многие разработчики и проектировщики среды выполнения такие функции, как привязка и сериализация, на самом деле не предусматривали этого, но они, несомненно, сделали ILMerge «умным» инструментом. Он настолько умен, что не может даже обрезать сорта.

Обратите внимание, что здесь также играет роль управление версиями, а конфигурация,. * И «звездочки в глазах», а также независимость версий от Редмонда тоже не помогают.

У вас наверняка будут проблемы с сторонними битами. . И поверьте мне, я знаю, что вам нужно слияние, так как какое-то жалкое небольшое количество типов может занять много времени, прежде чем MS JIT начнет работать с большими приложениями (и нет, я не хочу, чтобы NGEN или оптимизированный 3.5SP1 загружали это » s даже медленнее, чем раньше, из-за System.Core или божественного раздувания WPF).

Лучший вариант, imho, по крайней мере, в больших масштабах, - получить достойный коммерческий инструмент, который сканирует и обрабатывает это (т. е. из существующий опыт боли и обфускации). В конечном итоге вы можете в конечном итоге инструментировать существующий код IL, если у вас нет исходных текстов.

[Затем было изобретение строки INotifyPropertyChanged, которое таким образом решило проблему глобального потепления - Разработано Casio-Calc Inventors]

-2
ответ дан 17 December 2019 в 20:33
поделиться

Да, есть решение этой проблемы: сборка модулей вместо сборок!

Компиляторы для .net имеют параметр (/ target: module для C # и VB), который создает модуль вместо сборки. Затем несколько модулей можно передать компилятору и использовать для создания окончательной сборки.

Конечно, все это предполагает, что у вас есть исходный код для сторонних сборок. Если вы не можете этого получить, возможно, у третьей стороны можно приобрести версию .netmodule сторонней сборки?

Если это не сработает, у вас все еще есть последний вариант. Очевидно вы уже разбираете стороннюю сборку в IL. Удалите информацию о сборке из этого файла IL и используйте ilasm / dll для создания .netmodule, который теперь вы можете использовать так же, как любой другой .netmodule!

Используя модули вместо сборок, у вас больше не должно возникнуть проблем, связанных с сборками.

Верно, мы решили вашу проблему с ILMerge, больше не используя ILMerge, но разве это не лучшее решение?

Надеюсь, это сработает для вас, вот несколько удобных ссылок:
.netmodule вместо сборка
ILASM с .netmodules

(И здесь я подумал, что мой опыт работы с .netmodules никому не пригодится!)

4
ответ дан 17 December 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: