/// <summary> /// Builds a command line from options in this and derivative tasks. /// </summary> /// <remarks> /// Derivative classes should call BuildCommandLine() on the base class to ensure that common command line options are added to the command. /// </remarks> protected virtual void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { commandLineBuilder.AppendIfTrue("-nologo", this.NoLogo); commandLineBuilder.AppendArrayIfNotNull("-sw", this.SuppressSpecificWarnings); commandLineBuilder.AppendIfTrue("-sw", this.SuppressAllWarnings); commandLineBuilder.AppendIfTrue("-v", this.VerboseOutput); commandLineBuilder.AppendArrayIfNotNull("-wx", this.TreatSpecificWarningsAsErrors); commandLineBuilder.AppendIfTrue("-wx", this.TreatWarningsAsErrors); }
/// <summary> /// Builds a command line from options in this task. /// </summary> protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { base.BuildCommandLine(commandLineBuilder); commandLineBuilder.AppendIfTrue("-ag", this.AutogenerateGuids); commandLineBuilder.AppendIfTrue("-gg", this.GenerateGuidsNow); commandLineBuilder.AppendIfTrue("-sfrag", this.SuppressFragments); commandLineBuilder.AppendIfTrue("-suid", this.SuppressUniqueIds); commandLineBuilder.AppendArrayIfNotNull("-t ", this.Transforms); commandLineBuilder.AppendTextIfNotNull(this.AdditionalOptions); commandLineBuilder.AppendSwitchIfNotNull("-out ", this.OutputFile); }
private void ExecuteCore() { var commandLineBuilder = new WixCommandLineBuilder(); commandLineBuilder.AppendTextUnquoted("build"); commandLineBuilder.AppendSwitchIfNotNull("-out ", this.OutputFile); commandLineBuilder.AppendSwitchIfNotNull("-outputType ", this.OutputType); commandLineBuilder.AppendIfTrue("-nologo", this.NoLogo); commandLineBuilder.AppendSwitchIfNotNull("-cultures ", this.Cultures); commandLineBuilder.AppendArrayIfNotNull("-d ", this.DefineConstants); commandLineBuilder.AppendArrayIfNotNull("-I ", this.IncludeSearchPaths); commandLineBuilder.AppendExtensions(this.Extensions, this.ExtensionDirectory, this.ReferencePaths); commandLineBuilder.AppendIfTrue("-sval", this.SuppressValidation); commandLineBuilder.AppendArrayIfNotNull("-sice ", this.SuppressIces); commandLineBuilder.AppendSwitchIfNotNull("-usf ", this.UnreferencedSymbolsFile); commandLineBuilder.AppendSwitchIfNotNull("-cc ", this.CabinetCachePath); commandLineBuilder.AppendSwitchIfNotNull("-intermediatefolder ", this.IntermediateDirectory); commandLineBuilder.AppendSwitchIfNotNull("-contentsfile ", this.BindContentsFile); commandLineBuilder.AppendSwitchIfNotNull("-outputsfile ", this.BindOutputsFile); commandLineBuilder.AppendSwitchIfNotNull("-builtoutputsfile ", this.BindBuiltOutputsFile); commandLineBuilder.AppendIfTrue("-bindFiles", this.BindFiles); commandLineBuilder.AppendArrayIfNotNull("-bindPath ", this.CalculateBindPathStrings()); commandLineBuilder.AppendArrayIfNotNull("-loc ", this.LocalizationFiles); commandLineBuilder.AppendArrayIfNotNull("-lib ", this.LibraryFiles); commandLineBuilder.AppendTextIfNotWhitespace(this.AdditionalOptions); commandLineBuilder.AppendFileNamesIfNotNull(this.SourceFiles, " "); var commandLineString = commandLineBuilder.ToString(); this.Log.LogMessage(MessageImportance.Normal, "wix.exe " + commandLineString); var serviceProvider = new WixToolsetServiceProvider(); var context = serviceProvider.GetService <ICommandLineContext>(); var messaging = serviceProvider.GetService <IMessaging>(); messaging.SetListener(this.Listener); context.Messaging = messaging; context.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider); context.Arguments = commandLineString; var commandLine = serviceProvider.GetService <ICommandLine>(); var command = commandLine.ParseStandardCommandLine(context); command?.Execute(); }
protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { commandLineBuilder.AppendSwitch(this.OperationName); commandLineBuilder.AppendFileNameIfNotNull(this.Project); commandLineBuilder.AppendSwitchIfNotNull("-configuration ", this.Configuration); commandLineBuilder.AppendSwitchIfNotNull("-directoryid ", this.DirectoryIds); commandLineBuilder.AppendSwitchIfNotNull("-generate ", this.GenerateType); commandLineBuilder.AppendSwitchIfNotNull("-platform ", this.Platform); commandLineBuilder.AppendArrayIfNotNull("-pog ", this.ProjectOutputGroups); commandLineBuilder.AppendSwitchIfNotNull("-projectname ", this.ProjectName); commandLineBuilder.AppendIfTrue("-wixvar", this.GenerateWixVariables); base.BuildCommandLine(commandLineBuilder); }
protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { commandLineBuilder.AppendSwitch(this.OperationName); commandLineBuilder.AppendFileNameIfNotNull(this.File); commandLineBuilder.AppendSwitchIfNotNull("-cg ", this.ComponentGroupName); commandLineBuilder.AppendSwitchIfNotNull("-dr ", this.DirectoryRefId); commandLineBuilder.AppendIfTrue("-scom", this.SuppressCom); commandLineBuilder.AppendIfTrue("-srd", this.SuppressRootDirectory); commandLineBuilder.AppendIfTrue("-sreg", this.SuppressRegistry); commandLineBuilder.AppendSwitchIfNotNull("-template ", this.Template); commandLineBuilder.AppendSwitchIfNotNull("-var ", this.PreprocessorVariable); base.BuildCommandLine(commandLineBuilder); }
/// <summary> /// Generate the command line arguments to write to the response file from the properties. /// </summary> /// <returns>Command line string.</returns> protected override string GenerateResponseFileCommands() { WixCommandLineBuilder commandLineBuilder = new WixCommandLineBuilder(); commandLineBuilder.AppendSwitch(this.OperationName); commandLineBuilder.AppendFileNameIfNotNull(this.File); commandLineBuilder.AppendSwitchIfNotNull("-cg ", this.ComponentGroupName); commandLineBuilder.AppendSwitchIfNotNull("-dr ", this.DirectoryRefId); commandLineBuilder.AppendIfTrue("-scom", this.SuppressCom); commandLineBuilder.AppendIfTrue("-srd", this.SuppressRootDirectory); commandLineBuilder.AppendIfTrue("-sreg", this.SuppressRegistry); commandLineBuilder.AppendSwitchIfNotNull("-template ", this.Template); commandLineBuilder.AppendSwitchIfNotNull("-var ", this.PreprocessorVariable); base.BuildCommandLine(commandLineBuilder); return(commandLineBuilder.ToString()); }
/// <summary> /// Builds a command line from options in this task. /// </summary> protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { base.BuildCommandLine(commandLineBuilder); commandLineBuilder.AppendSwitchIfNotNull("-im ", this.DatabaseFile); if (null != this.OriginalBundleFile) { commandLineBuilder.AppendSwitchIfNotNull("-ab ", this.BundleFile); commandLineBuilder.AppendFileNameIfNotNull(this.OriginalBundleFile); } else { commandLineBuilder.AppendSwitchIfNotNull("-ib ", this.BundleFile); } commandLineBuilder.AppendSwitchIfNotNull("-out ", this.OutputFile); commandLineBuilder.AppendTextIfNotNull(this.AdditionalOptions); }
/// <summary> /// Generate the command line arguments to write to the response file from the properties. /// </summary> /// <returns>Command line string.</returns> protected override string GenerateResponseFileCommands() { WixCommandLineBuilder commandLineBuilder = new WixCommandLineBuilder(); commandLineBuilder.AppendSwitch(this.OperationName); commandLineBuilder.AppendFileNameIfNotNull(this.Project); commandLineBuilder.AppendSwitchIfNotNull("-configuration ", this.Configuration); commandLineBuilder.AppendSwitchIfNotNull("-directoryid ", this.DirectoryIds); commandLineBuilder.AppendSwitchIfNotNull("-generate ", this.GenerateType); commandLineBuilder.AppendSwitchIfNotNull("-platform ", this.Platform); commandLineBuilder.AppendArrayIfNotNull("-pog ", this.ProjectOutputGroups); commandLineBuilder.AppendSwitchIfNotNull("-projectname ", this.ProjectName); commandLineBuilder.AppendIfTrue("-wixvar", this.GenerateWixVariables); base.BuildCommandLine(commandLineBuilder); return(commandLineBuilder.ToString()); }
/// <summary> /// Builds a command line from options in this task. /// </summary> protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { base.BuildCommandLine(commandLineBuilder); commandLineBuilder.AppendIfTrue("-notidy", this.LeaveTemporaryFiles); commandLineBuilder.AppendIfTrue("-xo", this.OutputAsXml); commandLineBuilder.AppendIfTrue("-xi", this.InputIsXml); commandLineBuilder.AppendIfTrue("-p", this.PreserveUnmodifiedContent); commandLineBuilder.AppendTextIfNotNull(this.AdditionalOptions); commandLineBuilder.AppendFileNameIfNotNull(this.BaselineFile); commandLineBuilder.AppendFileNameIfNotNull(this.UpdateFile); commandLineBuilder.AppendSwitchIfNotNull("-out ", this.OutputFile); commandLineBuilder.AppendIfTrue("-a", this.adminImage); commandLineBuilder.AppendSwitchIfNotNull("-x ", this.BinaryExtractionPath); commandLineBuilder.AppendSwitchIfNotNull("-serr ", this.SuppressTransformErrorFlags); commandLineBuilder.AppendSwitchIfNotNull("-t ", this.TransformValidationType); commandLineBuilder.AppendSwitchIfNotNull("-val ", this.TransformValidationFlags); }
protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { commandLineBuilder.AppendSwitch(this.OperationName); commandLineBuilder.AppendFileNameIfNotNull(this.Project); commandLineBuilder.AppendSwitchIfNotNull("-configuration ", this.Configuration); commandLineBuilder.AppendSwitchIfNotNull("-directoryid ", this.DirectoryIds); commandLineBuilder.AppendSwitchIfNotNull("-generate ", this.GenerateType); commandLineBuilder.AppendSwitchIfNotNull("-msbuildbinpath ", this.MsbuildBinPath); commandLineBuilder.AppendSwitchIfNotNull("-platform ", this.Platform); commandLineBuilder.AppendArrayIfNotNull("-pog ", this.ProjectOutputGroups); commandLineBuilder.AppendSwitchIfNotNull("-projectname ", this.ProjectName); commandLineBuilder.AppendIfTrue("-wixvar", this.GenerateWixVariables); #if !NETCOREAPP commandLineBuilder.AppendIfTrue("-usetoolsversion", this.UseToolsVersion); #endif base.BuildCommandLine(commandLineBuilder); }
/// <summary> /// Builds a command line for bind-input paths (-bt and -bu switches). /// </summary> private void AppendBindInputPaths(WixCommandLineBuilder commandLineBuilder, IEnumerable <ITaskItem> bindInputPaths, string switchName) { if (null != bindInputPaths) { Queue <String> formattedBindInputPaths = new Queue <String>(); foreach (ITaskItem item in bindInputPaths) { String formattedPath = string.Empty; String bindName = item.GetMetadata("BindName"); if (!String.IsNullOrEmpty(bindName)) { formattedPath = String.Concat(bindName, "=", item.GetMetadata("FullPath")); } else { formattedPath = item.GetMetadata("FullPath"); } formattedBindInputPaths.Enqueue(formattedPath); } commandLineBuilder.AppendArrayIfNotNull(switchName, formattedBindInputPaths.ToArray()); } }
/// <summary> /// Builds a command line from options in this task. /// </summary> protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { base.BuildCommandLine(commandLineBuilder); commandLineBuilder.AppendSwitchIfNotNull("-out ", this.OutputFile); commandLineBuilder.AppendArrayIfNotNull("-b ", this.baseInputPaths); if (null != this.BindInputPaths) { Queue <String> formattedBindInputPaths = new Queue <String>(); foreach (ITaskItem item in this.BindInputPaths) { String formattedPath = string.Empty; String bindName = item.GetMetadata("BindName"); if (!String.IsNullOrEmpty(item.GetMetadata("BindName"))) { formattedPath = String.Concat(bindName, "=", item.GetMetadata("FullPath")); } else { formattedPath = item.GetMetadata("FullPath"); } formattedBindInputPaths.Enqueue(formattedPath); } commandLineBuilder.AppendArrayIfNotNull("-b ", formattedBindInputPaths.ToArray()); } commandLineBuilder.AppendIfTrue("-bf", this.BindFiles); commandLineBuilder.AppendExtensions(this.extensions, this.ExtensionDirectory, this.referencePaths); commandLineBuilder.AppendArrayIfNotNull("-loc ", this.LocalizationFiles); commandLineBuilder.AppendIfTrue("-pedantic", this.Pedantic); commandLineBuilder.AppendIfTrue("-ss", this.SuppressSchemaValidation); commandLineBuilder.AppendIfTrue("-sv", this.SuppressIntermediateFileVersionMatching); commandLineBuilder.AppendTextIfNotNull(this.AdditionalOptions); List <string> objectFilePaths = AdjustFilePaths(this.objectFiles, this.ReferencePaths); commandLineBuilder.AppendFileNamesIfNotNull(objectFilePaths.ToArray(), " "); }
/// <summary> /// Builds a command line from options in this task. /// </summary> protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { base.BuildCommandLine(commandLineBuilder); commandLineBuilder.AppendIfTrue("-p", this.PreprocessToStdOut); commandLineBuilder.AppendSwitchIfNotNull("-p", this.PreprocessToFile); commandLineBuilder.AppendSwitchIfNotNull("-out ", this.OutputFile); commandLineBuilder.AppendArrayIfNotNull("-d", this.DefineConstants); commandLineBuilder.AppendArrayIfNotNull("-I", this.IncludeSearchPaths); commandLineBuilder.AppendIfTrue("-pedantic", this.Pedantic); commandLineBuilder.AppendSwitchIfNotNull("-arch ", this.InstallerPlatform); commandLineBuilder.AppendExtensions(this.Extensions, this.ExtensionDirectory, this.referencePaths); commandLineBuilder.AppendTextIfNotNull(this.AdditionalOptions); // Support per-source-file output by looking at the SourceFiles items to // see if there is any "CandleOutput" metadata. If there is, we do our own // appending, otherwise we fall back to the built-in "append file names" code. // Note also that the wix.targets "Compile" target does *not* automagically // fix the "@(CompileObjOutput)" list to include these new output names. // If you really want to use this, you're going to have to clone the target // in your own .targets file and create the output list yourself. bool usePerSourceOutput = false; if (this.SourceFiles != null) { foreach (ITaskItem item in this.SourceFiles) { if (!String.IsNullOrEmpty(item.GetMetadata("CandleOutput"))) { usePerSourceOutput = true; break; } } } if (usePerSourceOutput) { string[] newSourceNames = new string[this.SourceFiles.Length]; for (int iSource = 0; iSource < this.SourceFiles.Length; ++iSource) { ITaskItem item = this.SourceFiles[iSource]; if (null == item) { newSourceNames[iSource] = null; } else { string output = item.GetMetadata("CandleOutput"); if (!String.IsNullOrEmpty(output)) { newSourceNames[iSource] = String.Concat(item.ItemSpec, ";", output); } else { newSourceNames[iSource] = item.ItemSpec; } } } commandLineBuilder.AppendFileNamesIfNotNull(newSourceNames, " "); } else { commandLineBuilder.AppendFileNamesIfNotNull(this.SourceFiles, " "); } }
/// <summary> /// Builds a command line from options in this task. /// </summary> protected override void BuildCommandLine(WixCommandLineBuilder commandLineBuilder) { // Always put the output first so it is easy to find in the log. commandLineBuilder.AppendSwitchIfNotNull("-out ", this.OutputFile); commandLineBuilder.AppendSwitchIfNotNull("-pdbout ", this.PdbOutputFile); base.BuildCommandLine(commandLineBuilder); commandLineBuilder.AppendIfTrue("-ai", this.AllowIdenticalRows); commandLineBuilder.AppendIfTrue("-au", this.AllowUnresolvedReferences); commandLineBuilder.AppendArrayIfNotNull("-b ", this.baseInputPaths); if (null != this.BindInputPaths) { Queue <String> formattedBindInputPaths = new Queue <String>(); foreach (ITaskItem item in this.BindInputPaths) { String formattedPath = string.Empty; String bindName = item.GetMetadata("BindName"); if (!String.IsNullOrEmpty(bindName)) { formattedPath = String.Concat(bindName, "=", item.GetMetadata("FullPath")); } else { formattedPath = item.GetMetadata("FullPath"); } formattedBindInputPaths.Enqueue(formattedPath); } commandLineBuilder.AppendArrayIfNotNull("-b ", formattedBindInputPaths.ToArray()); } commandLineBuilder.AppendIfTrue("-bcgg", this.BackwardsCompatibleGuidGeneration); commandLineBuilder.AppendIfTrue("-bf", this.BindFiles); commandLineBuilder.AppendSwitchIfNotNull("-cc ", this.CabinetCachePath); commandLineBuilder.AppendIfSpecified("-ct ", this.CabinetCreationThreadCount); commandLineBuilder.AppendSwitchIfNotNull("-cub ", this.AdditionalCub); commandLineBuilder.AppendSwitchIfNotNull("-cultures:", this.Cultures); commandLineBuilder.AppendSwitchIfNotNull("-binder ", this.CustomBinder); commandLineBuilder.AppendArrayIfNotNull("-d", this.WixVariables); commandLineBuilder.AppendSwitchIfNotNull("-dcl:", this.DefaultCompressionLevel); commandLineBuilder.AppendIfTrue("-dut", this.DropUnrealTables); commandLineBuilder.AppendIfTrue("-eav", this.ExactAssemblyVersions); commandLineBuilder.AppendExtensions(this.Extensions, this.ExtensionDirectory, this.referencePaths); commandLineBuilder.AppendArrayIfNotNull("-ice:", this.Ices); commandLineBuilder.AppendArrayIfNotNull("-loc ", this.LocalizationFiles); commandLineBuilder.AppendIfTrue("-notidy", this.LeaveTemporaryFiles); commandLineBuilder.AppendIfTrue("-pedantic", this.Pedantic); commandLineBuilder.AppendIfTrue("-reusecab", this.ReuseCabinetCache); commandLineBuilder.AppendIfTrue("-sa", this.SuppressAssemblies); commandLineBuilder.AppendIfTrue("-sacl", this.SuppressAclReset); commandLineBuilder.AppendIfTrue("-sadmin", this.SuppressDefaultAdminSequenceActions); commandLineBuilder.AppendIfTrue("-sadv", this.SuppressDefaultAdvSequenceActions); commandLineBuilder.AppendArrayIfNotNull("-sice:", this.SuppressIces); commandLineBuilder.AppendIfTrue("-sma", this.SuppressMsiAssemblyTableProcessing); commandLineBuilder.AppendIfTrue("-sf", this.SuppressFiles); commandLineBuilder.AppendIfTrue("-sh", this.SuppressFileHashAndInfo); commandLineBuilder.AppendIfTrue("-sl", this.SuppressLayout); commandLineBuilder.AppendIfTrue("-sloc", this.SuppressLocalization); commandLineBuilder.AppendIfTrue("-spdb", this.SuppressPdbOutput); commandLineBuilder.AppendIfTrue("-ss", this.SuppressSchemaValidation); commandLineBuilder.AppendIfTrue("-sts", this.SuppressTagSectionIdAttributeOnTuples); commandLineBuilder.AppendIfTrue("-sui", this.SuppressDefaultUISequenceActions); commandLineBuilder.AppendIfTrue("-sv", this.SuppressIntermediateFileVersionMatching); commandLineBuilder.AppendIfTrue("-sval", this.SuppressValidation); commandLineBuilder.AppendSwitchIfNotNull("-usf ", this.UnreferencedSymbolsFile); commandLineBuilder.AppendIfTrue("-xo", this.OutputAsXml); commandLineBuilder.AppendSwitchIfNotNull("-contentsfile ", this.BindContentsFile); commandLineBuilder.AppendSwitchIfNotNull("-outputsfile ", this.BindOutputsFile); commandLineBuilder.AppendSwitchIfNotNull("-builtoutputsfile ", this.BindBuiltOutputsFile); commandLineBuilder.AppendSwitchIfNotNull("-wixprojectfile ", this.WixProjectFile); commandLineBuilder.AppendTextIfNotNull(this.AdditionalOptions); List <string> objectFilePaths = AdjustFilePaths(this.objectFiles, this.ReferencePaths); commandLineBuilder.AppendFileNamesIfNotNull(objectFilePaths.ToArray(), " "); }