Releases: ninedigit/wixsharpextensions
Release v1.0.14
Release v1.0.13
Added extension method for running registry search whether Visual C++ version 2015-2019 (version 14) is installed on the machine.
Release v1.0.12.2
bugfix in AddWindowsServiceAndFirewallRule
extension method.
Release v1.0.12.1
No functional changes. README.md added to nuget package.
Release v1.0.12
changes in AddWindowsServiceAndFirewallRule
extension:
- added failureActionType params
- BREAKING CHANGE: failureActionType is now
none
, when not specified (wasrestart
for first and second failure). - multiple files for same service are supported (helpful for conditional install).
Release v1.0.11.3
New bundle extensions:
Bundle.AddRegistrySearchForOsBuildVersion
Saves OS Build version to specified variable.
Example:
// define variable
const string osBuildVersionVariableName = "WINDOWS_BUILD_VERSION";
// compose condition
var win7OrWin7Sp1Condition =
WixExpression.Create(new WixExpression(osBuildVersionVariableName), WixComparativeExpressionOperator.Eq, new WixExpression(OsBuildVersion.Windows7ServicePack1OrWindowsServer2008R2ServicePack1)) |
WixExpression.Create(new WixExpression(osBuildVersionVariableName), WixComparativeExpressionOperator.Eq, new WixExpression(OsBuildVersion.Windows7OrWindowsServer2008R2));
// register registry search (so variable will be filled up)
var bootstrapper = new Bundle()
...
.AddRegistrySearchForOsBuildVersion(osBuildVersionVariableName)
...
// use the condition.
Bundle.AddRegistrySearchAspNetCoreInstalled
Detects whether ASP.NET Core with given version if installed.
Example: Check if ASP.NET Core 3.1 is installed on target machine
// define variable name
const string aspNetCore3Point1DetectedVariableName = "ASP_NET_CORE_31_DETECTED";
var bootstrapper = new Bundle()
...
// register registry search (so variable will be filled up)
.AddRegistrySearchAspNetCoreInstalled(new Version(3, 1), aspNetCore3Point1DetectedVariableName)
...
// use the condition wheter to install the dependency.
.AddOnlineDependency<ExePackage>("dotnet-hosting-3.1.3-win.exe",
BootstrapperDependenciesDirectoryPath, BootstrapperDependenciesDownloadUrlParentPath,
installCondition: !new WixExpression(aspNetCore3Point1DetectedVariableName),
exeExitCodeMap: new ExitCodeMapBuilder().Add(ResultWin32.ERROR_PRODUCT_VERSION, BehaviorValues.success).Build()) // Ignore "Newer version installed" error
Release v1.0.10
- Updated version of wixsharp dependency from 1.15.0 to 1.18.0. No breaking changes (issue #3)
Release v1.0.9
Added helper classes for building single MSI for both X86 and X64 platform, based on two build directories:
X86AndX64BuildHelper
X86AndX64FileBuilder
Usage:
string sourceDirectoryX86 = "path-to-the-x86-build";
string sourceDirectoryX64 = "path-to-the-x64-build";
X86AndX64BuildHelper x86x64BuildHelper = new X86AndX64BuildHelper(sourceDirectoryX86, sourceDirectoryX64);
new Project()
...
.SetProjectInfo(
upgradeCode: "ProductUpgradeCode",
projectName: "My project name",
version: x86x64BuildHelper.Version)
.AddDirectories(
new Dir("%ProgramFiles%",
new Dir(CompanyFolderName,
new Dir(ProductFamilyFolderName,
new InstallDir(ProductFolderName, x86x64BuildHelper.GetFiles())
)
)
)
)
The x86x64BuildHelper.GetFiles()
produces several instances of WixSharp.Files
:
- one instance for common files: same file path and same file hash in both builds
- two instances for build-specific files (different files and/or file hashes) across builds
This way you can produce single MSI file for both platforms, with minimal installer file size, as same files are not added to MSI twice.
Release v1.0.8
- Localization now supports localization of product name, description and control panel info.
- Updated wixsharp dependency to
1.15.0
Release v1.0.7
New budle extensions added:
- fluent option to configure the Bootstrapper application using
bundle.ConfigureApplication
extension method. - bundle icon file can be added using the
bundle.SetInfo
extension method. - bundle splash screen BMP file can be added using the
bundle.SetSplashScreen
extension method. - all add/remove programs menu buttons can be set using the new
bundle.SetAddRemoveProgramsButtons
extension method.