Разработка собственного командлета Powershell, и он имеет некоторые зависимости от внешних сторонних сборок. Эти сторонние сборки поддерживаются в GAC.
Существование и установка этих сборок обычно обрабатывается вне нашего пользовательского командлета и может и будет обновляться вне нашего контроля.
Итак, наш командлет работает с любой версией сборки, большей, чем, скажем, 1.0.1. Пример вопроса; мы компилируем наш командлет для версии 1.0.1 и помещаем его в систему, где установлена сборка 1.0.2.5204. При вызове моих функций командлета я получаю типичную ошибку теперь, когда «сборка версии 1.0.1 не может быть найдена».
Здесь решение ( перенаправление сборки конфигурации Powershell ) предлагает использовать обработчик событий. Хотя, похоже, существуют некоторые оговорки в отношении этого решения, поэтому мы попытались разработать альтернативу.
Мы думали о регистрации более старых версий DLL в GAC во время регистрации нашего пользовательского двоичного командлета. Если более старая версия сборки не существует, но существует более новая, то мы знаем, что необходимое программное обеспечение установлено. Итак, мы будем регистрировать старую DLL рядом с новой, которая нужна текущему приложению.
Есть ли у этого решения основные минусы, о которых мы не думаем?
Мы думаем, что это упростит наш код, поэтому интересно узнать, является ли это хорошим способом приблизиться к нему.