Какова цель Global Assembly Cache (GAC)?
Я зарегистрировал DLL в GAC. Я могу видеть DLL в пути: c:\windows\asssembly
; Я предполагаю, что это означает, что DLL правильно зарегистрирована.
Однако, если мне нужно использовать DLL в моем приложении, мне все равно нужно нажать "Добавить ссылку" и добавить по указанному выше пути.
Итак, какая польза от GAC, если мне все еще нужно добавить ссылку снова?
1 ответ
В глобальном кэше сборок хранятся сборки, специально предназначенные для совместного использования несколькими приложениями на компьютере.
Другими словами, вы хотите зарегистрировать вашу DLL в GAC, если несколько приложений (на одном компьютере, конечно) будут совместно использовать DLL.
Однако из ваших комментариев я хочу упомянуть еще несколько вещей:
Возможно, вы неправильно зарегистрировали DLL; как только ваша DLL окажется в GAC, вы сможете добавить ее из того же списка, в котором находятся все библиотеки GACed. Вы не должны делать это по пути.
Тот факт, что ваша DLL находится в GAC, не означает, что ваш код теперь должен видеть ее каким-то автоматическим способом; вам все еще нужна ссылка на него (точно так же, как вам нужна ссылка на все другие библиотеки.NET DLL, от которых вы зависите, которые также находятся в GAC).
Опять же, преимущество GAC состоит в том, что если 3 из ваших приложений нуждаются в DLL, вам придется развернуть ее только один раз (вы развернете ее GAC, а не 3 раза для каждого приложения).
bin
каталог).
Надеюсь, это немного прояснилось.