private ProcessArgumentBuilder GetSignArguments(SignSettings settings) { if (!string.IsNullOrWhiteSpace(settings.Password) && settings.CertFile == null) { throw new ArgumentException("Password requires CertFile to be set", nameof(settings.CertFile)); } if (settings.FileToSign == null) { throw new ArgumentNullException(nameof(settings.FileToSign), "File to sign is required"); } var builder = new ProcessArgumentBuilder(); builder.Append("-sign"); builder.AppendQuoted(settings.FileToSign.MakeAbsolute(Environment).ToString()); builder.AppendNonEmptySecretSwitch("-pwd", settings.Password); builder.AppendNonNullFilePathSwitch("-certFile", settings.CertFile, Environment); builder.AppendNonNullFilePathSwitch("-toFile", settings.ToFile, Environment); builder.AppendNonEmptyQuotedSwitch("-certHash", settings.CertHash); return(builder); }