PanelSwWixExtension 2.7.1

Wix Extension

A WiX extension with various actions including- File regular expressions; XmlSearch; TaskScheduler; ExecOnComponent

Requires NuGet 2.7 or higher.

Install-Package PanelSwWixExtension -Version 2.7.1
dotnet add package PanelSwWixExtension --version 2.7.1
<PackageReference Include="PanelSwWixExtension" Version="2.7.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PanelSwWixExtension --version 2.7.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

PanelSwWixExtension is the most comprehensive open source WiX extension.
It features dozens of actions from querying XML, JSON and text files to installing ServiceBase-based and TopShelf services.

The commercial extension- JetWixExtension- complements PanelSwWixExtension with the following features:

  • JetBA: The most comprehensive, fully customizable, extensible, WPF-based BootstrapperApplication.
  • JetBA++: The only native fully customizable, extensible, Qt-based BootstrapperApplication.
  • Preprocessor extension:
    • Harvest directly from WiX source code by executing Heat commands
      <?pragma heat.dir "$(sys.SOURCEFILEDIR)..\bin\Release" -cg BIN -dr INSTALLFOLDER -ag?>
      
    • Collection variables
      <?pragma tuple.NIR a; b; c?>
      <?pragma tuple.BAR x; y; z?>
      <?foreach i in $(tuple_range.BAR())?>
      <Component Feature="ProductFeature" Directory="INSTALLFOLDER">
        <File Source="$(sys.SOURCEFILEPATH)" Name="Product.$(tuple.NIR($(var.i))).$(tuple.BAR($(var.i))).wxs"/>
      </Component>
      <?endforeach?>
      <?pragma endtuple.BAR?>
      <?pragma endtuple.NIR?>
      
    • Generate random Id.
      Useful when deploying files with same name to different target folders:
      <ComponentGroup Id="random">
      	<Component Directory="Product.Dir">
      	<File Source="$(sys.SOURCEFILEPATH)" Id="$(jet.random_id())"/>
      	</Component>
      	<Component Directory="INSTALL_FOLDER">
      	<File Source="$(sys.SOURCEFILEPATH)" Id="$(jet.random_id())"/>
      	</Component>
      </ComponentGroup>
      

Contact the owner to obtain a license for JetWixExtension

PanelSwWixExtension WiX Elements

  • Immediate Actions:
    • AccountSidSearch: Lookup an account's SID by account name.
    • JsonJpathSearch: Read JSON values
    • DiskSpace: Calculate available disk space for a target directory
    • CertificateHashSearch: Find a certificate has in local system MY store.
    • Evaluate: Evaluate mathematical expressions and store result in property.
    • SetPropertyFromPipe: Allows setting property from a pipe.
    • SqlSearch: Execute a SQL query and place result in a property.
    • ReadIniValues: Reads .INI file values.
    • XmlSearch: Read XML values.
    • RegularExpression: Execute a Regular Expression to replace or find matches in property values and in file contents.
    • MsiSqlQuery: Execute a MSI-SQL query on the MSI database.
    • CreateSelfSignCertificate: Create a self-sign certificate that can then be installed by WixIisExtension.
    • AlwaysOverwriteFile: Sets the highest possible version on a file row (65535.65535.65535.65535) to ensure it overwrites existing file
  • Deferred Actions:
    • JsonJPath: Set values in JSON-formatted file.
    • Dism: Enable Windows Feature using DISM API. Features will be installed when the parent component is being installed or repaired.
    • ZipFile: Creates a ZIP archive from selected files.
    • Unzip: Extract a ZIP archive to selected folder.
    • CustomUninstallKey: Overwrite registry values in the product's Uninstall registry key
    • RemoveRegistryValue: Removes registry values. Complements the standard RemoveRegistryValue WiX element that will only remove registry values during installation.
    • ExecOn: Execute a custom command on component action.
    • TaskScheduler: Add a task to Windows Task Scheduler. Task definition XML should be in inner text.
    • DeletePath: Delete folder or file specified by a path.
    • FileRegex: Execute a Regular Expression to perform find & replace operations within files.
    • ShellExecute: Call ShellExecuteEx with parameters.
    • Telemetry: Send telemetry data to a given URL.
    • InstallUtil: Install a .NET assembly service.
    • TopShelf: Install a TopShelf based service.
    • BackupAndRestore: Backup a file before install or upgarde and restore it after.

Custom Actions

  • TerminateSuccessfully_Immediate: Terminates the installation with a successful indication. Executed in-script.
  • TerminateSuccessfully_Deferred: Terminates the installation with a successful indication. Deferred execution.
  • SplitPath: Split a full path supplied in 'FULL_PATH_TO_SPLIT' property and places the parts in properties SPLIT_DRIVE, SPLIT_FOLDER, SPLIT_FILE_NAME, SPLIT_FILE_EXTENSION.
  • PathExists: Tests whether the path supplied in 'FULL_PATH_TO_TEST' property exists. Sets 'PATH_EXISTS' property to 1 if it exists or clears it if it doesn't.
  • SplitString: Splits a string. Property name specified in 'PROPERTY_TO_SPLIT' and split token specified in 'STRING_SPLIT_TOKEN'. Results are stored in properties following the name supplied in 'PROPERTY_TO_SPLIT'.
    For example, say PROPERTY_TO_SPLIT="MY_PROP", MY_PROP="1,2,3" and STRING_SPLIT_TOKEN=",". Scheduling SplitString custom action will yield properties MY_PROP_0="1", MY_PROP_1="2" and MY_PROP_2="3".
  • TrimString: Trim whitespace characters in property with name specified in 'PROPERTY_TO_TRIM'.

PanelSwWixExtension is the most comprehensive open source WiX extension.
It features dozens of actions from querying XML, JSON and text files to installing ServiceBase-based and TopShelf services.

The commercial extension- JetWixExtension- complements PanelSwWixExtension with the following features:

  • JetBA: The most comprehensive, fully customizable, extensible, WPF-based BootstrapperApplication.
  • JetBA++: The only native fully customizable, extensible, Qt-based BootstrapperApplication.
  • Preprocessor extension:
    • Harvest directly from WiX source code by executing Heat commands
      <?pragma heat.dir "$(sys.SOURCEFILEDIR)..\bin\Release" -cg BIN -dr INSTALLFOLDER -ag?>
      
    • Collection variables
      <?pragma tuple.NIR a; b; c?>
      <?pragma tuple.BAR x; y; z?>
      <?foreach i in $(tuple_range.BAR())?>
      <Component Feature="ProductFeature" Directory="INSTALLFOLDER">
        <File Source="$(sys.SOURCEFILEPATH)" Name="Product.$(tuple.NIR($(var.i))).$(tuple.BAR($(var.i))).wxs"/>
      </Component>
      <?endforeach?>
      <?pragma endtuple.BAR?>
      <?pragma endtuple.NIR?>
      
    • Generate random Id.
      Useful when deploying files with same name to different target folders:
      <ComponentGroup Id="random">
      	<Component Directory="Product.Dir">
      	<File Source="$(sys.SOURCEFILEPATH)" Id="$(jet.random_id())"/>
      	</Component>
      	<Component Directory="INSTALL_FOLDER">
      	<File Source="$(sys.SOURCEFILEPATH)" Id="$(jet.random_id())"/>
      	</Component>
      </ComponentGroup>
      

Contact the owner to obtain a license for JetWixExtension

PanelSwWixExtension WiX Elements

  • Immediate Actions:
    • AccountSidSearch: Lookup an account's SID by account name.
    • JsonJpathSearch: Read JSON values
    • DiskSpace: Calculate available disk space for a target directory
    • CertificateHashSearch: Find a certificate has in local system MY store.
    • Evaluate: Evaluate mathematical expressions and store result in property.
    • SetPropertyFromPipe: Allows setting property from a pipe.
    • SqlSearch: Execute a SQL query and place result in a property.
    • ReadIniValues: Reads .INI file values.
    • XmlSearch: Read XML values.
    • RegularExpression: Execute a Regular Expression to replace or find matches in property values and in file contents.
    • MsiSqlQuery: Execute a MSI-SQL query on the MSI database.
    • CreateSelfSignCertificate: Create a self-sign certificate that can then be installed by WixIisExtension.
    • AlwaysOverwriteFile: Sets the highest possible version on a file row (65535.65535.65535.65535) to ensure it overwrites existing file
  • Deferred Actions:
    • JsonJPath: Set values in JSON-formatted file.
    • Dism: Enable Windows Feature using DISM API. Features will be installed when the parent component is being installed or repaired.
    • ZipFile: Creates a ZIP archive from selected files.
    • Unzip: Extract a ZIP archive to selected folder.
    • CustomUninstallKey: Overwrite registry values in the product's Uninstall registry key
    • RemoveRegistryValue: Removes registry values. Complements the standard RemoveRegistryValue WiX element that will only remove registry values during installation.
    • ExecOn: Execute a custom command on component action.
    • TaskScheduler: Add a task to Windows Task Scheduler. Task definition XML should be in inner text.
    • DeletePath: Delete folder or file specified by a path.
    • FileRegex: Execute a Regular Expression to perform find & replace operations within files.
    • ShellExecute: Call ShellExecuteEx with parameters.
    • Telemetry: Send telemetry data to a given URL.
    • InstallUtil: Install a .NET assembly service.
    • TopShelf: Install a TopShelf based service.
    • BackupAndRestore: Backup a file before install or upgarde and restore it after.

Custom Actions

  • TerminateSuccessfully_Immediate: Terminates the installation with a successful indication. Executed in-script.
  • TerminateSuccessfully_Deferred: Terminates the installation with a successful indication. Deferred execution.
  • SplitPath: Split a full path supplied in 'FULL_PATH_TO_SPLIT' property and places the parts in properties SPLIT_DRIVE, SPLIT_FOLDER, SPLIT_FILE_NAME, SPLIT_FILE_EXTENSION.
  • PathExists: Tests whether the path supplied in 'FULL_PATH_TO_TEST' property exists. Sets 'PATH_EXISTS' property to 1 if it exists or clears it if it doesn't.
  • SplitString: Splits a string. Property name specified in 'PROPERTY_TO_SPLIT' and split token specified in 'STRING_SPLIT_TOKEN'. Results are stored in properties following the name supplied in 'PROPERTY_TO_SPLIT'.
    For example, say PROPERTY_TO_SPLIT="MY_PROP", MY_PROP="1,2,3" and STRING_SPLIT_TOKEN=",". Scheduling SplitString custom action will yield properties MY_PROP_0="1", MY_PROP_1="2" and MY_PROP_2="3".
  • TrimString: Trim whitespace characters in property with name specified in 'PROPERTY_TO_TRIM'.

Dependencies

This package has no dependencies.

Version History

Version Downloads Last updated
2.7.1 34 5/17/2019
2.7.0 35 5/16/2019
2.6.6 36 5/15/2019
2.6.5 42 5/14/2019
2.6.4 39 5/8/2019
2.6.3 33 5/8/2019
2.6.2 138 5/2/2019
2.6.1 59 4/18/2019
2.6.0 60 4/8/2019
2.5.0 64 3/26/2019
2.4.1 51 3/20/2019
2.4.0 73 3/7/2019
2.3.0 68 3/5/2019
2.2.0 70 2/28/2019
2.1.0 67 2/25/2019
2.0.3 72 2/19/2019
2.0.1 66 2/14/2019
2.0.0 77 2/11/2019
1.17.17 112 1/17/2019
1.17.16 107 1/16/2019
1.17.15 96 1/15/2019
1.17.14 92 1/14/2019
1.17.13 119 1/10/2019
1.17.12 93 1/9/2019
1.17.11 121 1/2/2019
1.17.10 129 1/2/2019
1.17.9 95 12/31/2018
1.17.8 120 12/31/2018
1.17.7 86 12/27/2018
1.17.6 117 12/27/2018
1.17.5 115 12/27/2018
1.17.4 83 12/26/2018
1.17.3 106 12/23/2018
1.17.2 95 12/23/2018
1.17.1 103 12/20/2018
1.17.0 102 12/20/2018
1.16.2 118 12/19/2018
1.16.1 94 12/18/2018
1.16.0 101 12/13/2018
1.15.0 109 12/6/2018
1.14.0 85 12/5/2018
1.13.0 88 12/5/2018
1.12.2 97 11/28/2018
1.12.1 107 11/28/2018
1.12.0 130 10/22/2018
1.11.0 133 10/21/2018
1.10.2 208 10/14/2018
1.10.1 140 10/5/2018
1.10.0 119 10/5/2018
1.9.2 129 10/3/2018
1.9.1 138 9/21/2018
1.9.0 108 9/21/2018
1.8.2 154 9/16/2018
1.8.1 140 9/2/2018
1.8.0 136 8/28/2018
1.6.2 149 7/29/2018
1.6.1 146 7/25/2018
1.6.0 160 7/24/2018
1.5.0 178 7/11/2018
1.4.3 332 7/4/2018
1.4.2 188 6/27/2018
1.4.1 185 6/14/2018
1.4.0 168 6/12/2018
1.3.1 164 5/30/2018
1.3.0 173 5/21/2018
1.2.0 182 5/10/2018
1.1.38 180 5/7/2018
1.1.37 181 5/2/2018
1.1.36 165 4/25/2018
1.1.35 173 4/25/2018
1.1.34 191 4/11/2018
1.1.33 162 3/15/2018
1.1.32 213 3/14/2018
1.1.31 208 3/7/2018
1.1.30 201 2/27/2018
1.1.29 191 2/26/2018
1.1.28 195 2/25/2018
1.1.27 207 2/22/2018
1.1.26 211 2/21/2018
1.1.25 168 2/21/2018
1.1.24 194 2/19/2018
1.1.23 1,062 1/30/2018
1.1.22 193 1/30/2018
1.1.21 207 1/10/2018
1.1.20 184 12/18/2017
1.1.19 374 11/28/2017
1.1.18 178 11/5/2017
1.1.15 246 9/5/2017