PanelSwWixExtension 3.5.0.229

Requires NuGet 2.7 or higher.

dotnet add package PanelSwWixExtension --version 3.5.0.229
NuGet\Install-Package PanelSwWixExtension -Version 3.5.0.229
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PanelSwWixExtension" Version="3.5.0.229" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PanelSwWixExtension --version 3.5.0.229
#r "nuget: PanelSwWixExtension, 3.5.0.229"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PanelSwWixExtension as a Cake Addin
#addin nuget:?package=PanelSwWixExtension&version=3.5.0.229

// Install PanelSwWixExtension as a Cake Tool
#tool nuget:?package=PanelSwWixExtension&version=3.5.0.229

PanelSwWixExtension WiX v3 NuGet version (PanelSwWixExtension) WiX v4 NuGet version (PanelSwWixExtension4)

PanelSwWixExtension from the creator of JetBA is the most comprehensive open source WiX extension. I would like to thank JetBrains for their support of this project

Contact me should you require any additional features, custom WiX fixes and enhancements, or for license to the commercial JetBA WiX WPF UI framework

PanelSwWixExtension WiX Elements

  • Immediate Actions:
    • Md5Hash: Computes MD5 hash.
    • WmiSearch: Execute a WMI query.
    • PathSearch: Search for a file on PATH environment variable folder list.
    • VersionCompare: Compare two versions, set result to property in range -4 to +4, denoting the version part that was different.
    • ForceVersion: Force a specified version for a file. Version overwrite is done on runtime in the MSI database.
    • 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 hash 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.
    • ToLowerCase: Convert property value to lowercase.
    • CustomPatchRef Support referencing custom table rows in a patch
    • Payload Support extracting files from Binary table temporarilty during MSI execution
    • PromptFileDowngrades Log each file that will be downgraded during the (re)install, and prompt the total downgrade count if larger than 0.
  • Deferred Actions:
    • RestartLocalResources: Register processes with the Restart Manager if they reside in the specified folder
    • XslTransform: Apply a XSL transform on an installed XML file
    • WebsiteConfig: currently, can only stop a website
    • JsonJPath: Set values in JSON-formatted file.
    • Dism: Enable or disable Windows Features using DISM API. Features will be modified 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.
    • 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.
    • SqlScript: Execute SQL scripts, optionally with text replacements.
    • SplitFile: Splits a file to parts during build, and reconstruct it during install. Used to workaround MSI limitation of 2GB file size.
  • Bundle Actions:
    • ExePackage/UninstallCommand: Execute a custom command to uninstall an ExePackage. Used for packages which the uninstall is launched via a different executable than the install.

Preprocessor

  • $(psw.VarNullOrEmpty(VAR_NAME)): Return 1 if the variable is not defined, or if it defined as empty. Return 0 otherwise
  • $(psw.AutoGuid(x,y,z,...)): Return a pseudo-random UUID per arguments
  • $(psw.FileExists(path)): Return 1 if the file exists, 0 otherwise
  • $(psw.DirExists(path)): Return 1 if the folder exists, 0 otherwise
  • $(psw.DirEmpty(path)): Return 1 if the folder doesn't exist or if it has no files (including in subfolders). Return 0 otherwise

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'.

Error codes

PanelSwWixExtension uses error codes in Error table:

  • 27000: TopShelf error template for prompting user on errors.
  • 27001: ExecOn error template for prompting user on errors.
  • 27002: ServiceConfig error template for prompting user on errors.
  • 27003: Dism error template for prompting user on failures to add a Windows feature package.
  • 27004: Dism error template for prompting user on failures to enable a Windows feature.
  • 27005: SqlScript error template for prompting user on errors.
  • 27006: ExecOn error template for prompting user on console output parsing.
  • 27007: WebsiteConfig error template for prompting user on errors.
  • 27008: SqlSearch error template for prompting user on errors.
  • 27009: JsonJpath error template for prompting user on errors.
  • 27010: Dism error template for prompting user on failures to remove a Windows feature package.
  • 27011: ExecOn message template for prompting user on success with promptAlways.
  • 27012: Prompt on file downgrades

Properties

The following properties hold localized built-in account names. To use them, add a PropertyRef element.

  • DOMAIN_ADMINISTRATORS
  • DOMAIN_GUESTS
  • DOMAIN_USERS
  • ENTERPRISE_DOMAIN_CONTROLLERS
  • DOMAIN_DOMAIN_CONTROLLERS
  • DOMAIN_COMPUTERS
  • BUILTIN_ADMINISTRATORS
  • BUILTIN_GUESTS
  • BUILTIN_USERS
  • LOCAL_ADMIN
  • LOCAL_GUEST
  • ACCOUNT_OPERATORS
  • BACKUP_OPERATORS
  • PRINTER_OPERATORS
  • SERVER_OPERATORS
  • AUTHENTICATED_USERS
  • PERSONAL_SELF
  • CREATOR_OWNER
  • CREATOR_GROUP
  • LOCAL_SYSTEM
  • POWER_USERS
  • EVERYONE
  • REPLICATOR
  • INTERACTIVE
  • NETWORK
  • SERVICE
  • RESTRICTED_CODE
  • WRITE_RESTRICTED_CODE
  • ANONYMOUS
  • SCHEMA_ADMINISTRATORS
  • CERT_SERV_ADMINISTRATORS
  • RAS_SERVERS
  • ENTERPRISE_ADMINS
  • GROUP_POLICY_ADMINS
  • ALIAS_PREW2KCOMPACC
  • LOCAL_SERVICE
  • NETWORK_SERVICE
  • REMOTE_DESKTOP
  • NETWORK_CONFIGURATION_OPS
  • PERFMON_USERS
  • PERFLOG_USERS
  • IIS_USERS
  • CRYPTO_OPERATORS
  • OWNER_RIGHTS
  • EVENT_LOG_READERS
  • ENTERPRISE_RO_DCs
  • CERTSVC_DCOM_ACCESS

The following properties hold localized CSIDL folders. To use them, add a PropertyRef element.

  • UserDesktopFolder: CSIDL_DESKTOPDIRECTORY

Building

PanelSwWixExtension require the following prerequisites to build:

  • CMake: CMake path can be specified in 'CMakeDir' property in 'TidyBuild.custom.props'
  • ADK installed. Specifically, Dism API should be installed. Set DismApi folder path in 'DismApiDir' property in 'TidyBuild.custom.props'
  • Update git submodules

To build the extension download the code, open the solution PanelSwWixExtension.sln in Visual Studio 2017 and build it.

Unit-test WiX are available in the solution folder 'UnitTests'. After building a unit test project, you'll need to shutdown Visual Studio before you can build PanelSwWixExtension project again. This is due to the unfortunate habit of Visual Studio to hold the extension file in use. You may find it convenient to build unit test projects from a command prompt to workaround this limitation

MSBuild UnitTests\PromptFileDowngradesUT\PromptFileDowngradesUT.wixproj /p:Configuration=Release /p:Platform=x86 /t:Rebuild "/p:SolutionDir=%CD%\\"
There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.5.0.229 51 9/18/2023
3.5.0.229-psw-wix 35 9/18/2023
3.4.0.225 129 8/16/2023
3.4.0.225-psw-wix 128 8/16/2023
3.3.3.224 248 7/16/2023
3.3.3.224-psw-wix 85 7/16/2023
3.3.3.211 2,005 6/25/2023
3.3.3.211-psw-wix 80 6/25/2023
3.3.2.206 148 6/22/2023
3.3.2.206-psw-wix 55 6/22/2023
3.3.1.158 1,824 4/10/2023
3.3.1.158-psw-wix 114 4/10/2023
3.3.0.155 490 3/28/2023
3.3.0.155-psw-wix 84 3/28/2023
3.2.13.152 231 3/27/2023
3.2.13.152-psw-wix 80 3/27/2023
3.2.12.151 522 3/13/2023
3.2.12.151-psw-wix 90 3/13/2023
3.2.11.142 224 3/12/2023
3.2.11.142-psw-wix 75 3/12/2023
3.2.10.140 868 2/8/2023
3.2.10.140-psw-wix 115 2/8/2023
3.2.9.138 278 2/5/2023
3.2.9.138-psw-wix 200 2/5/2023
3.2.8.135 330 2/1/2023
3.2.8.135-psw-wix 134 2/1/2023
3.2.7.131 474 1/26/2023
3.2.7.131-psw-wix 127 1/26/2023
3.2.6.129 265 1/25/2023
3.2.6.129-psw-wix 105 1/25/2023
3.2.5.124 593 1/4/2023
3.2.5.124-psw-wix 141 1/4/2023
3.2.4.112 591 12/11/2022
3.2.4.112-psw-wix 2,759 12/11/2022
3.2.3.111 420 12/5/2022
3.2.3.111-psw-wix 100 12/5/2022
3.2.2.110 387 11/29/2022
3.2.2.110-psw-wix 113 11/29/2022
3.2.1.109 736 11/3/2022
3.2.1.109-psw-wix 117 11/3/2022
3.2.0.108 929 10/3/2022
3.2.0.108-psw-wix 149 10/3/2022
3.1.1.105 383 10/2/2022
3.1.1.105-psw-wix 124 10/2/2022
3.1.0.104 632 9/20/2022
3.1.0.104-psw-wix 137 9/20/2022
3.0.1.103 2,262 9/13/2022
3.0.1.103-psw-wix 232 9/13/2022
3.0.0.101 438 9/13/2022
3.0.0.101-psw-wix 118 9/13/2022
2.46.1.99 563 9/8/2022
2.46.1.99-psw-wix 135 9/8/2022
2.45.7.97 428 9/8/2022
2.45.7.97-psw-wix 119 9/8/2022
2.45.4.94 460 8/30/2022
2.45.4.94-psw-wix 137 8/30/2022
2.45.3.92 460 8/17/2022
2.45.3.92-psw-wix 145 8/17/2022
2.45.2.91 399 8/17/2022
2.45.2.91-psw-wix 104 8/17/2022
2.45.1.90 408 8/15/2022
2.45.1.90-psw-wix 109 8/15/2022
2.45.0.85 436 8/9/2022
2.45.0.85-psw-wix 151 8/9/2022
2.44.3.84 475 6/23/2022
2.44.3.84-psw-wix 3,191 6/23/2022
2.44.2.83 456 6/22/2022
2.44.2.83-psw-wix 124 6/22/2022
2.44.1.80 423 6/21/2022
2.44.1.80-psw-wix 125 6/21/2022
2.44.0.79 458 5/30/2022
2.44.0.79-psw-wix 128 5/30/2022
2.43.0.78 480 5/12/2022
2.43.0.78-psw-wix 173 5/12/2022
2.42.4.77 456 4/27/2022
2.42.4.77-psw-wix 647 4/27/2022
2.42.3.76 474 4/20/2022
2.42.3.76-psw-wix 179 4/20/2022
2.42.1.75 1,131 4/11/2022
2.42.1.75-psw-wix 153 4/11/2022
2.42.1.74 446 4/10/2022
2.42.1.74-psw-wix 146 4/10/2022
2.42.0.73 448 4/3/2022
2.42.0.73-psw-wix 174 4/3/2022
2.41.0.70 454 3/31/2022
2.41.0.70-psw-wix 255 3/31/2022
2.40.0.69 477 3/29/2022
2.40.0.69-psw-wix 117 3/29/2022
2.39.0.68 460 3/29/2022
2.39.0.68-psw-wix 150 3/29/2022
2.38.5.67 482 3/9/2022
2.38.5.67-psw-wix 174 3/9/2022
2.38.4.65 469 2/21/2022
2.38.4.65-psw-wix 150 2/21/2022
2.38.3.64 454 2/17/2022
2.38.3.64-psw-wix 140 2/17/2022
2.38.2.62 442 2/15/2022
2.38.2.62-psw-wix 140 2/15/2022
2.38.1.61 470 2/9/2022
2.38.1.61-psw-wix 140 2/9/2022
2.38.0.56 479 2/2/2022
2.38.0.56-psw-wix 199 2/2/2022
2.37.0.53 476 1/26/2022
2.37.0.53-psw-wix 146 1/26/2022
2.36.2.52 309 12/26/2021
2.36.2.52-psw-wix 189 12/26/2021
2.36.1.51 416 12/23/2021
2.36.1.51-psw-wix 155 12/23/2021
2.36.0.50 330 12/23/2021
2.36.0.50-psw-wix 165 12/23/2021
2.35.0.49 341 12/15/2021
2.35.0.49-psw-wix 199 12/15/2021
2.34.6.48 310 12/14/2021
2.34.6.48-psw-wix 164 12/14/2021
2.34.5.47 483 10/31/2021
2.34.5.47-psw-wix 1,476 10/31/2021
2.34.4.41 364 10/27/2021
2.34.4.41-psw-wix 212 10/27/2021
2.34.3.38 365 10/26/2021
2.34.3.38-psw-wix 183 10/26/2021
2.34.2.33 368 10/21/2021
2.34.2.33-psw-wix 192 10/21/2021
2.34.1.32 365 10/20/2021
2.34.1.32-psw-wix 171 10/20/2021
2.34.0.31 411 10/19/2021
2.34.0.31-psw-wix 216 10/19/2021
2.33.0.28 411 9/20/2021
2.33.0.28-psw-wix 204 9/20/2021
2.32.3.25 400 7/20/2021
2.32.3.25-psw-wix 296 7/20/2021
2.32.2.24 391 7/19/2021
2.32.2.24-psw-wix 211 7/19/2021
2.32.0.21 1,229 6/28/2021
2.32.0.21-psw-wix 251 6/28/2021
2.31.6.18 377 6/9/2021
2.31.6.18-psw-wix 996 6/9/2021
2.31.5 375 5/12/2021
2.31.5-psw-wix 206 5/12/2021
2.31.4 359 5/6/2021
2.31.4-psw-wix 214 5/6/2021
2.31.3 377 4/27/2021
2.31.3-psw-wix 208 4/27/2021
2.31.2 673 4/6/2021
2.31.2-psw-wix 213 4/6/2021
2.31.1 410 4/5/2021
2.31.1-psw-wix 210 4/5/2021
2.31.0.55 1,326 2/22/2021
2.31.0-psw-wix 315 2/22/2021
2.30.2.54 1,489 1/27/2021
2.30.2-psw-wix 1,108 1/27/2021
2.30.1 383 1/25/2021
2.30.1-psw-wix 214 1/25/2021
2.30.0.52 746 12/29/2020
2.30.0-psw-wix 226 12/29/2020
2.29.0.51 1,661 11/8/2020
2.29.0-psw-wix 336 11/8/2020
2.28.1.50 566 10/6/2020
2.28.1-psw-wix 322 10/6/2020
2.28.0.49 490 9/29/2020
2.28.0-psw-wix 304 9/29/2020
2.27.0.48 489 9/22/2020
2.27.0-psw-wix 300 9/22/2020
2.26.0.47 522 9/2/2020
2.26.0-psw-wix 345 9/2/2020
2.25.1.46 496 6/28/2020
2.25.1-psw-wix 303 6/28/2020
2.24.1.43 541 6/23/2020
2.24.1-psw-wix 319 6/23/2020
2.24.0.40 504 6/18/2020
2.24.0-psw-wix 319 6/18/2020
2.23.39 545 6/16/2020
2.23.37-psw-wix 309 6/15/2020
2.22.1 619 5/21/2020
2.22.1-fix-6144 324 5/21/2020
2.22.0 556 4/30/2020
2.22.0-fix-6144 415 4/30/2020
2.21.2 549 4/16/2020
2.21.2-fix-6144 342 4/16/2020
2.21.1 501 4/13/2020
2.21.1-fix-6144 339 4/13/2020
2.21.0 500 4/12/2020
2.21.0-fix-6144 342 4/12/2020
2.20.0 768 3/26/2020
2.20.0-fix-6144 338 3/26/2020
2.19.0 1,536 2/24/2020
2.19.0-fix-6144 344 3/23/2020
2.18.0 532 2/13/2020
2.17.1 748 2/6/2020
2.17.0 615 1/27/2020
2.16.3 619 1/26/2020
2.16.2 671 1/20/2020
2.16.1 547 1/14/2020
2.16.0 575 1/9/2020
2.15.7 645 1/9/2020
2.15.6 588 12/15/2019
2.15.5 566 12/12/2019
2.15.4 559 12/11/2019
2.15.3 589 12/3/2019
2.15.2 582 12/3/2019
2.15.1 563 12/1/2019
2.15.0 571 11/27/2019
2.14.2 570 11/21/2019
2.14.1 576 11/13/2019
2.14.0 566 11/12/2019
2.13.3 552 11/10/2019
2.13.2 574 10/28/2019
2.13.1 582 10/22/2019
2.13.0 598 10/6/2019
2.12.1 584 9/19/2019
2.12.0 570 9/16/2019
2.11.1 587 9/15/2019
2.11.0 615 9/11/2019
2.10.2 603 8/14/2019
2.10.1 566 8/12/2019
2.10.0 629 8/11/2019
2.9.1 832 7/17/2019
2.9.0 614 7/16/2019
2.8.2 641 6/12/2019
2.8.1 642 5/26/2019
2.8.0 636 5/23/2019
2.7.1 617 5/17/2019
2.7.0 642 5/16/2019
2.6.6 665 5/15/2019
2.6.5 642 5/14/2019
2.6.4 629 5/8/2019
2.6.3 632 5/8/2019
2.6.2 732 5/2/2019
2.6.1 674 4/18/2019
2.6.0 1,375 4/8/2019
2.5.0 1,392 3/26/2019
2.4.1 620 3/20/2019
2.4.0 660 3/7/2019
2.3.0 667 3/5/2019
2.2.0 654 2/28/2019
2.1.0 648 2/25/2019
2.0.3 716 2/19/2019
2.0.1 738 2/14/2019
2.0.0 700 2/11/2019
1.17.17 767 1/17/2019
1.17.16 798 1/16/2019
1.17.15 789 1/15/2019
1.17.14 781 1/14/2019
1.17.13 784 1/10/2019
1.17.12 753 1/9/2019
1.17.11 813 1/2/2019
1.17.10 817 1/2/2019
1.17.9 749 12/31/2018
1.17.8 782 12/31/2018
1.17.7 765 12/27/2018
1.17.6 764 12/27/2018
1.17.5 791 12/27/2018
1.17.4 719 12/26/2018
1.17.3 755 12/23/2018
1.17.2 759 12/23/2018
1.17.1 770 12/20/2018
1.17.0 804 12/20/2018
1.16.2 831 12/19/2018
1.16.1 788 12/18/2018
1.16.0 793 12/13/2018
1.15.0 787 12/6/2018
1.14.0 768 12/5/2018
1.13.0 786 12/5/2018
1.12.2 818 11/28/2018
1.12.1 800 11/28/2018
1.12.0 795 10/22/2018
1.11.0 822 10/21/2018
1.10.2 900 10/14/2018
1.10.1 861 10/5/2018
1.10.0 830 10/5/2018
1.9.2 828 10/3/2018
1.9.1 865 9/21/2018
1.9.0 822 9/21/2018
1.8.2 879 9/16/2018
1.8.1 889 9/2/2018
1.8.0 846 8/28/2018
1.6.2 896 7/29/2018
1.6.1 897 7/25/2018
1.6.0 883 7/24/2018
1.5.0 980 7/11/2018
1.4.3 1,204 7/4/2018
1.4.2 1,037 6/27/2018
1.4.1 1,017 6/14/2018
1.4.0 1,012 6/12/2018
1.3.1 1,024 5/30/2018
1.3.0 999 5/21/2018
1.2.0 1,040 5/10/2018
1.1.38 1,030 5/7/2018
1.1.37 1,069 5/2/2018
1.1.36 1,037 4/25/2018
1.1.35 1,044 4/25/2018
1.1.34 1,065 4/11/2018
1.1.33 940 3/15/2018
1.1.32 1,066 3/14/2018
1.1.31 1,085 3/7/2018
1.1.30 1,005 2/27/2018
1.1.29 1,044 2/26/2018
1.1.28 1,040 2/25/2018
1.1.27 1,009 2/22/2018
1.1.26 1,030 2/21/2018
1.1.25 918 2/21/2018
1.1.24 1,050 2/19/2018
1.1.23 2,399 1/30/2018
1.1.22 1,005 1/30/2018
1.1.21 1,042 1/10/2018
1.1.20 981 12/18/2017
1.1.19 1,169 11/28/2017
1.1.18 959 11/5/2017
1.1.15 1,127 9/5/2017