Вопрос

Когда я пытаюсь удалить WSP с помощью следующей строки, все в порядке:

Uninstall-SPSolution project.wsp # no error - OK

Когда я пытаюсь добавить параметр переключателя -AllWebApplications, я получаю сообщение об ошибке (что-то вроде: Это решение не содержит ресурсов для области веб-приложения), что тоже нормально:

Uninstall-SPSolution project.wsp -AllWebApplications # error X - OK

НО, когда я добавляю этот параметр переключателя со значением FALSE, я получаю ошибку (такую ​​же, как указано выше), что неправильно, не так ли?

Uninstall-SPSolution project.wsp -AllWebApplications:$false # error X again - WRONG

Похоже, ничего не изменилось по сравнению с предыдущей строкой, но должно быть...


Другим способом:Мое решение НЕ нужно AllWebApplication параметр, но я хочу его явно отключить (имеется в виду - указать значение FALSE).

Вопрос:Как указать для этого параметра переключателя значение FALSE?


Я только что заметил, что с командлетом этого не происходит. Install-SPSolution.

Это было полезно?

Решение

Кажется, что Install-SPSolution и Uninstall-SPSolution были написаны двумя разными разработчиками (или, по крайней мере, в разное время).

Обе команды могут принять либо «нет», либо одно, либо все веб-приложения. То, как они работают с этой опцией, совершенно разные.

Установка-SPSolution
Это хорошо закодированный вариант, где решение основано на:

  • Проверьте, получило ли оно ненулевое значение в WebApplication, если да, то он проверяет истинность AllWebApplications, если это так, то это ошибка, если нет, то это одно веб-приложение.
  • если не один, он проверяет, является ли SwitchParameter AllWebApplications истинным, если да, то это все веб-приложения.
  • если нет, то это не веб-приложения

Удалить-SPРешение:

Двум параметрам назначены разные наборы параметров. Это означает, что вы не можете указать оба параметра -WebApplication и -AllWebApplications независимо от значений, поскольку тогда он не сможет решить, какой набор параметров вы имеете в виду.

А затем в «Ваш баг» вместо проверки значения -AllWebApplications они просто проверяют, является ли набор параметров «AllWebApplication», если да, то они игнорируют любое указанное вами значение и просто предполагают истинность

Другие советы

Это должно работать, установив для параметра -confirm значение 0 или false.

Из всех веб-приложений:

Uninstall-SPSolution yousolutionname.wsp -AllWebApplications -Confirm:$false

Из конкретного веб-приложения:

Uninstall-SPSolution -Identity yousolutionname.wsp -Confirm:0 -Webapplication $url
Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top