Я работаю над проектом, для установки которого используются API, описанные в статье KB317540 базы знаний Майкрософт. устанавливать и удалять сборки в GAC. В статье KB говорится:
РЕЗЮМЕ
Программные интерфейсы приложений (API) с машинным кодом, которые позволяют взаимодействовать с Global Assembly Cache (GAC), не описаны в документации .NET Framework Software Development Kit (SDK).ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
ПРЕДУПРЕЖДЕНИЕ. Не используйте эти API-интерфейсы в своем приложении для выполнения привязок сборок или для проверки наличия сборок или других операций времени выполнения, разработки или времени разработки. Только административные инструменты и программы установки должны использовать эти API. Если вы используете GAC, это напрямую подвергает ваше приложение уязвимости привязки сборки или может привести к неправильной работе вашего приложения в будущих версиях .NET Framework.GAC хранит сборки, которые используются всеми приложениями на компьютере. Фактическое место хранения и структура GAC не задокументированы и могут быть изменены в будущих версиях .NET Framework и операционной системы Microsoft Windows.
Единственный поддерживаемый метод доступа к сборкам в GAC - это API-интерфейсы, описанные в этой статье.
Большинству приложений не обязательно использовать эти API, поскольку привязка сборки выполняется автоматически общеязыковой средой выполнения. Только пользовательские программы установки или инструменты управления должны использовать эти API. Установщик Microsoft Windows имеет встроенную поддержку для установки сборок в GAC.
Дополнительные сведения о сборках и GAC см. В пакете SDK .NET Framework.
Используйте GAC API в следующих сценариях: Когда вы устанавливаете сборку в GAC. Когда вы удаляете сборку из GAC. Когда вы экспортируете сборку из GAC. Когда вы перечисляете сборки, доступные в GAC. ПРИМЕЧАНИЕ. CoInitialize (Ex) необходимо вызвать перед использованием каких-либо функций и интерфейсов, описанных в этой спецификации.
Какие плюсы и минусы этой техники? Безопасны ли эти API в использовании? Кто-нибудь там их использует? Если да, то почему?