Ниже приведен командлет, и мне нужно, чтобы он работал, предоставив переключатель «Удалить» или «установить». По умолчанию «установка» присутствует.
[Cmdlet(VerbsLifecycle.Install, "MyPackage")]
[UsedImplicitly]
public class InstallMyPackageCommand : PSCmdlet
{
[UsedImplicitly]
[Parameter(Position = 0, Mandatory = false, ParameterSetName = "Uninstall")]
public SwitchParameter Uninstall { get; set; } = !SwitchParameter.Present;
[UsedImplicitly]
[ValidateNotNullOrEmpty]
[ValidateNotNull]
[Parameter(Position = 1, Mandatory = true)]
public string Path { get; set; }
protected override void BeginProcessing()
{
base.BeginProcessing();
}
}
Но приведенный выше код не распознает не предоставленный переключатель как «Uninstall» и пытается связать путь к файлу с первым параметром переключателя, который полностью не является путем к файлу. Даже первый параметр не является обязательным и присутствует значение по умолчанию.
После ошибки, получаемой при вводе команды "Install-MyPackage "C:\Projects\MsiPackages"
Cannot convert 'System.String' to the type 'System.Management.Automation.SwitchParameter'
, требуемой для параметра «Удалить».
Может ли любое тело сообщить мне, что это решение.