#powershell #azure-service-fabric
#powershell #azure-service-fabric
Вопрос:
Если в системе уже установлены модули, скажите «servicefabric», и во время выполнения моего скрипта я хочу удалить этот модуль, поскольку он может быть предыдущей версии. И я хочу импортировать свой новый модуль servicefabric последней версии. Могу ли я узнать, как это можно сделать?
Я пробовал это:
if(Get-Module -Name "ServiceFabric")
{
Remove-Module -Name "ServiceFabric"
}
Но это не удаление установленного системой модуля service fabric.
И этот же модуль отображается в списке с помощью приведенной ниже команды
Get-Module -ListAvailable -Name "ServiceFabric"
когда я попытался снова. Итак, я просто хочу удалить загруженный системой модуль.
Комментарии:
1. Вы хотите удалить или деинсталлировать модуль?
Remove-Module
просто выгружает модуль.2. Я не хочу удалять модуль. Я хотел удалить его из своего текущего сеанса, и я просто хотел использовать свой новый модуль service fabric, который я собираюсь импортировать из своего кода.
3.
Get-Module -ListAvailable
перечислены доступные модули, а не те модули, которые фактически загружены. Последнее — это то, что делаетGet-Module
without-ListAvailable
.
Ответ №1:
Если модуль определен в сборке или если модуль включает сборку, то выгрузить его невозможно. Имена командлетов будут удалены, но сборка останется в памяти.
Это не проблема Powershell — .Сеть не позволяет выгружать сборки. Вместо этого вам нужно выгрузить AppDomain, содержащий сборку.
Комментарии:
1. Если мне нужно выгрузить AppDomain, содержащий сборку, то в таком случае, как я могу ее выгрузить. Могу ли я после моей работы снова загрузить его AppDomain.
2. Я очень сомневаюсь, что вы сможете выгрузить AppDomain, поскольку он принадлежит Powershell, и попытка сделать это, вероятно, повлияет на среду. Можно ли избежать загрузки модуля в первую очередь?
3. Хм…. Я должен поместить его сверху, потому что мне нужно подключиться к кластеру, а затем развернуть приложение / обновить / перезаписать. Итак, могу ли я выбрать любой другой вариант, скажем, загрузить мою конкретную версию библиотеки dll Service Fabric и продолжить развертывание с помощью powershell.
4. Кто-нибудь может помочь в этом, пожалуйста. Поскольку я должен сделать это дальше.
Ответ №2:
Вы пробовали? Удалить-Название-модуля «ServiceFabric» -Принудительное выполнение ошибки автоматически продолжается. Вам не нужно проверять, загружен ли модуль. Просто удалите его, если таковой обнаружен.
Комментарии:
1. Я пробовал с вышеупомянутым. Когда я его выполняю, он не выдает ошибку. Но, поскольку мне приходится импортировать новые модули, и на основе импортированных модулей какой бы я ни написал код, он не выполняется. Когда я не импортирую новый модуль, что когда-либо ошибка, которую я получаю, та же ошибка, которую я получаю после импорта последнего модуля. Я разместил код удаления модуля в верхней части страницы сценария powershell.