Поведение GAC - PullRequest
       8

Поведение GAC

1 голос
/ 19 февраля 2009

Я положил подписанный DLL в GAC. Я удаляю эту dll из папки, где другие приложения могут добраться до нее. Я пытаюсь запустить клиентское приложение, которое использовало эту DLL. Dll незамедлительно возвращается в исходную папку. Как это происходит?

Я предполагаю, что GAC отслеживает папку, и когда он обнаруживает, что dll отсутствует, он помещает последнюю версию обратно в папку, где другие приложения могут получить к ней доступ. Если я прав, скажите мне, если GAC автоматически создаст резервную копию dll, если она будет перестроена.

Ответы [ 4 ]

2 голосов
/ 19 февраля 2009

GAC не знает об источнике сборки. Наиболее вероятное объяснение состоит в том, что вы просто восстановили библиотеку DLL в IDE.

1 голос
/ 19 февраля 2009

Я не знаю, почему это происходит, но эта информация может вам помочь,

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

0 голосов
/ 29 апреля 2010

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

Среда выполнения общего языка выполняет ряд шагов при попытке найти сборку и разрешить ссылку на сборку. Каждый шаг объясняется в следующих разделах. Термин «зондирование» часто используется при описании того, как среда выполнения находит сборки; оно относится к набору эвристик, используемых для определения местоположения сборки на основе ее имени и культуры.

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

Привет ...

S

0 голосов
/ 19 февраля 2009

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

Чтобы ответить на ваш вопрос: Нет, GAC не будет отслеживать другие папки для поиска обновлений, сделанных в DLL. Вам нужно будет установить каждую версию DLL, используя gacutil.

...