Заставить dotfuscator распознавать две сборки, созданные против разных версий третьей сборки, ссылаются на одну и ту же сборку?

У нас есть приложение .Net AppA, которое включает сборки LibA и LibB.

LibB также ссылается на LibA; он был построен некоторое время назад и помещен в наш репозиторий пакетов, поэтому он был построен на основе более старой версии LibA, чем та, которая включена непосредственно в AppA. Ни одна из библиотек не имеет конкретных названий.

Когда мы запускаем AppA в том виде, в каком он построен, используется только последняя версия LibA; все ссылки на LibA из LibB с радостью используют последнюю версию, а не версию, для которой был создан LibB.

Однако, когда мы помещаем эти сборки в Dotfuscator, Dotfuscator обрабатывает ссылки на LibA из LibB так, как если бы они ссылались на совершенно другую сборку, а не на LibA, которую мы передаем в Dotfuscator. Следовательно, в запутанном приложении ссылки из LibB на LibA не обновляются, чтобы отразить запутывание LibA, и поэтому не работают во время выполнения.

Чтобы решить эту проблему, необходимо убедиться, что все наши сборки основаны на одной и той же версии других сборок. Это исправляет запутанное приложение, но в некотором роде нарушает цель нашей стратегии управления пакетами, которая должна позволить каждой из наших библиотек развиваться в своем собственном темпе. Трудно масштабировать с большим количеством разрабатываемых нами пакетов.

Мне не хватает какого-то переключателя или параметра в Dotfuscator (мы используем коммерческую версию 4.8, но можем обновить), который заставит его разрешать ссылки на сборки только по имени, так же, как .Net во время выполнения, поэтому обфускация будет работать как мы ожидаем?


person antlersoft    schedule 01.08.2017    source источник


Ответы (1)


Заявление об отказе от ответственности, я являюсь сотрудником PreEmptive Solutions, разработчика Dotfuscator.

Версия 4.33.0 выпущена сегодня (11 / 20/2017) содержит исправление этой проблемы. Кроме того, перенаправление привязки сборки может теперь можно использовать, чтобы более четко определять, какие сборки разрешать.

person mletterle    schedule 20.11.2017
comment
Вы обновились до 4.33.0 и по-прежнему наблюдаете то же поведение. Мне нужно что-то изменить в конфигурации Dotfuscator, чтобы это работало? Нужны ли перенаправления где-нибудь в файле .config? - person antlersoft; 06.12.2017