Как препятствовать тому, чтобы приложение.NET загрузило/сослалось блок из GAC?

Попробуйте это:

vector<Type>::iterator nth = v.begin() + index;
34
задан Dai 10 February 2017 в 04:26
поделиться

2 ответа

Если обе сборки имеют строгие имена (подписанные), среда CLR всегда будет загружаться из GAC.

Вот шаги, которые среда выполнения использует для разрешения ссылок на сборки (из Как среда выполнения обнаруживает сборки ):

  1. Определяет правильную версию сборки, проверяя применимые файлы конфигурации, включая файл конфигурации приложения, файл политики издателя и компьютер Файл конфигурации. Если файл конфигурации находится на удаленная машина, среда выполнения должна найдите и загрузите приложение сначала файл конфигурации.

  2. Проверяет, было ли ранее привязано имя сборки, и если да, то использует ранее загруженную сборку. Если предыдущий запрос на загрузку сборка не удалась, запрос не выполнен сразу, не пытаясь загрузить Ассамблея.

  3. Проверяет глобальный кеш сборок. Если сборка найдена там, то среда выполнения использует эту сборку.

  4. Зонды для сборки (... некоторый материал опущен ...)

Как указано далее в той же статье:

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

Так что, если вы можете позволить себе удалить подпись из локальной сборки, приложение будет использовать ее вместо той, которая указана в GAC.

Для получения более подробной информации, чем вы могли бы возможно, когда-нибудь захотите узнать о механизмах привязки во время выполнения, см. блог Сюзанны Кук .

Эта запись в блоге Скотта Хансельмана также предоставляет отличный обзор процесса привязки.

24
ответ дан 27 November 2019 в 17:15
поделиться

Чтобы успешно развернуть ваше приложение .NET Framework, вы должны понимать, как среда выполнения общего языка находит и связывает сборки, из которых состоит ваше приложение. По умолчанию среда выполнения пытается установить связь с той версией сборки, с которой было создано приложение. Это поведение по умолчанию может быть отменено настройками конфигурационного файла.

Вы можете просмотреть информацию о привязке в файле журнала с помощью программы просмотра журнала привязки сборок (Fuslogvw.exe), которая входит в комплект средств разработки программного обеспечения (SDK) для Windows.

s

-2
ответ дан 27 November 2019 в 17:15
поделиться
Другие вопросы по тегам:

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