Загрузка с практическими рекомендациями assemby во времени выполнения перед событием AssemblyResolve?

Я думаю, что Вы могли вставить тег изображения в тег noscript и посмотреть на статистику, сколько раз Вашего сайта и как часто это изображение было загружено.

11
задан Oliver 21 July 2009 в 13:31
поделиться

2 ответа

На всякий случай, если вы не знали, есть инструмент под названием ILMerge от MS Research, который объединяет сборки в один файл.

Также вы можете создавать Multi- файловых сборок с помощью Assembly Linker tool .

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

3
ответ дан 3 December 2019 в 11:21
поделиться

Средство связывания CLR не знает, что LoadMyAssemblies () выполняет то же действие, что и событие AssemblyResolve, и что они оба пытаются найти одну и ту же сборку и загрузить ее.

AssemblyResolve Событие всегда запускается в момент, когда связыватель решает, что он просмотрел все возможные местоположения (которые доступны для поиска в этом приложении) и не смог найти совпадение.

Напрашивается исходный вопрос: зачем вам статически связывать свои управляемые сборки? Прочтите эту ветку, чтобы подробно обсудить преимущества статического связывания

. Я продолжу и отвечу на часть того, как избежать попадания в событие AssemblyResolve. 1) Поместите сборку в GAC. Что касается связующего, GAC всегда побеждает. 2) Поместите свою сборку на путь зондирования и убедитесь, что Binder подхватывает ее (дополнительную информацию можно найти в статье «Как среда выполнения обнаруживает сборки» на MSDN).

3
ответ дан 3 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

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