wixsharp

Framework for building a complete MSI or WiX source code by using script files written with C# syntax.

MIT License

Stars
1.1K
Committers
52

Bot releases are hidden (Show)

wixsharp - Release v1.16.0.0

Published by oleg-shilo over 3 years ago

  • Add "OS validation" functionality to NSIS bootstrapper
  • Issue #962: Add RemotePayloads support for MsuPackage
  • Issue #965: Retry strategy for DigitalSignature
  • Implemented the most obvious/acceptable static code analysis recommendations
  • Added IISCertificate support
  • Added GlobalSuppressions*.cs files to suppress non-meaningful warnings
  • Added support for IISCertificate element.
  • Added missing FirewallExtension.ru.wxl file
  • Fixed problem with UninstallFullUI' display icon not being added to all features
  • "Added LaunchApplicationAction" is extended with support for stock UI
  • U-Tests are completed and BuildSamples enabled on AppVeyor
  • Samples
    • Fixed "UrlReservation" sample
    • Fixed "Release Folder" sample
    • Added UninstallFullUI.cs sample
    • Projects are migrated on target v4.6.1
  • BuildMultilanguageMsi improvements
    • returns path of the built MSI file
    • prints additional build progress messages in output
wixsharp - Release v1.15.0.0

Published by oleg-shilo almost 4 years ago

This is a major fixes/improvements release

  • Localization: preserve msi platform settings when settings language with SetPackageLanguages (fixes #939)
  • Added LaunchApplicationAction.
  • NSIS bootstrapper-spash
  • Forced to use a single "Uninstall/Change" button in the ARP
  • Remove duplicated deferred properties.
  • Allows the installer to display full UI for the "Uninstall" button in the Control Panel.
  • Typo fix ResilientPackageIstallDir -> ResilientPackageInstallDir
  • DigitalSignature support has been added to the NsisBootstrapper
  • Issue #906: Error in Compiler.BuildMsi when building using cscs.exe but not from Visual Studio
wixsharp - Release v1.14.8.0

Published by oleg-shilo about 4 years ago

  • Issue #902: candle.exe : error CNDL0125 when building bootstrapper application from existing msi and add bootstrapper variable
  • Issue #862: I can't seem to get it working
  • Issue #900: Preserve messageType value for ExternalUI setup with Custom Actions
  • Merge pull request #899 from Q-Sharp/master
  • Added Condition Net48_Installed
  • Implemented/fixed WixEntity.ComponentCondition. Triggered by "How to add Condition to ODBCDataSource #896 "
  • Issue #894: LicenseBootstrapperApplication do not add payloads in case of rtf license
    • Added Process.StartElevated extension method
wixsharp - Release v1.14.7.0

Published by oleg-shilo over 4 years ago

  • Added AppId class and completed specification for TypeLib class.
  • Updated API documentation for WixSharp.Shortcut.WorkingDirectory
  • Issue #872: Add support for TypeLib registration
wixsharp - Release v1.14.6.0

Published by oleg-shilo over 4 years ago

  • Issue #866: Improvements to digital signatures. Support for signing using SHA1, SHA256, or both
  • Issue #835: Confusing error: "API restriction: The assembly '' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain."
  • NuGet WixSharp package v.14.4.1: improved integration with VS templates - no need for project reload on the first run.
  • Issue #856: INSTALL_DIR should be INSTALLDIR
  • Issue #591 (extended): Code signing timestamping fails if old Windows SDK is installed
  • Issue #810: Localization; Added signing at teh end of BuildMultilanguageMsi
wixsharp - Release v1.14.4.0

Published by oleg-shilo over 4 years ago

  • Assoretd Nsis improvements
    Courtesy of Tigran (@geghamyan)
  • Impemented/addressed SonarQube suggested changes to the Manaded UI dialogs.
    Courtesy of @neal83 and Gilles (@GilesBathgate)
  • Issue #838: Small suggestion: Show UACWarning only after some delay
wixsharp - Release v1.14.3

Published by oleg-shilo over 4 years ago

  • Added NSIS Bootstrapper support for .ps1, .bat, .cmd, .vbs, .js scripts
  • Issue #810: Localization
  • Issue #807: While removing old version the installer removes new files too
  • Issue #803: SuppressOptionsUI property missing from WixStandardBootstrapperApplication
  • Issue #796: Question: Silent update installation and features
  • Issue #801: CopyFile element not implemented
  • Issue #652: Create IIS WebSite without IISVirtualDir
  • Added prevention of assembly locking when building ManagedProject from cs-script host
wixsharp - Release v1.14.2.0

Published by oleg-shilo almost 5 years ago

  • Fix collision possibility for GetHashCode32(): use (uint) instead of Math.Abs()
  • Issue #786: NullReferenceException on FindClientAssemblyInCallStack
  • Dynamic Localization - bootstrapper support
  • Modified Compiler.BuildMsi(string path) to return potentially modified input path
wixsharp - Release v1.14.1.0

Published by oleg-shilo almost 5 years ago

  • Issue #784: WixSharp Managed Setup - Custom UI - FeaturesDialog does not propagate user selection
  • Issue #783: Temporary Files Not Deleted After Successful Build
wixsharp - Release v1.14.0.0

Published by oleg-shilo almost 5 years ago

The key feature of tis release is "Dynamic Localization" Thank you @Xaddan for preparing an excellent POC for this feature.

It is now enough to specify multiple languages for the project and call the corresponding build method and WixSharp will do the rest. The required transforms will be automatically generated and embedded in the multi-language msi file, which will automatically switch UI to the language of the OS it is being executed on.

var product =
    new ManagedProject("My Product",
        new Dir(@"%ProgramFiles%\My Company\My Product",
            new File("readme.txt")));

product.Language = "en-US,de-DE,ru-RU";
product.GUID = new Guid("6f330b47-2577-43ad-9095-1861bb258777");

product.OutFileName = $"{product.Name}.ml.v{product.Version}";
product.BuildMultilanguageMsi();

Depending on the adoption of this new feature in the future releases BuildMultilanguageMsi may be automatically invoked if the project is identified as a multi-language setup.

The wiki documentation on Localization is yet to be done.


  • Issue #765: Dynamic localization
  • Added WiXUtil ProductSearch element. Used in the same way as the RegistrySearch. The product search is used to determine installation state of other products based on ProductCode or UpgradeCode by Burn bootstrappers.
  • Add support for ShortcutProperties (Refs: #218). ShortcutProperty is a simple child element on Shortcuts which has a key and a value. A simple dictionary object has been added to the Shortcut base class and processed later during compilation to emit child XML on the parent Shortcut.
  • Issue #774: Using CommonAppDataFolder in project.AddRegValue(RegValue) generates wrong XML
  • Issue #748: error for FirewallException. Added localization sample
  • Issue #772: Extensions.DeleteIfExists does not delete folders
  • Issue #771: default REINSTALLMODE
  • Improved auto-assignment of Compiler.ClientAssembly
wixsharp - Release v1.13.0.0

Published by oleg-shilo almost 5 years ago

  • Issue #726: File firewall exceptions are ignored
  • Issue #734: Hidden property for PublicProperty
  • Enhancement: Dir.AddItems() skips null items instead of throwing.
  • WiX binaries (WixSharp.wix.bin NuGet package) have been upgraded to v3.11.2
wixsharp - Release v1.13.2.0

Published by oleg-shilo almost 5 years ago

v1.13.2.0

  • Issue #750: MigrateFeatures not behaving as expected
  • Issue #756: Fix Extensions.SaveBinary
  • Issue #748: error for FirewallException
  • Issue #758: PVS-Studio report
  • Issue #756: Fix Extensions.Combine(this List<>, List<>)
  • Added fallback language setting to demonstrate safe localization technique in the 'Firewall Exception' sample.
  • Add Interface element for COM registration
  • Added extra content to the SetupArgs.Data documentation.

v1.13.0.0

  • Issue #726: File firewall exceptions are ignored
  • Issue #734: Hidden property for PublicProperty
  • Enhancement: Dir.AddItems() skips null items instead of throwing.
  • WiX binaries (WixSharp.wix.bin NuGet package) have been upgraded to v3.11.2
wixsharp - Release v1.13.1.0 (deleted)

Published by oleg-shilo almost 5 years ago

Mistakenly published release

v1.13.1.0

  • Issue #750: MigrateFeatures not behaving as expected
  • Issue #756: Fix Extensions.SaveBinary
  • Issue #748: error for FirewallException
  • Issue #758: PVS-Studio report
  • Issue #756: Fix Extensions.Combine(this List<>, List<>)
  • Added fallback language setting to demonstrate safe localization technique in the 'Firewall Exception' sample.
  • Add Interface element for COM registration
  • Added extra content to the SetupArgs.Data documentation.

v1.13.0.0

  • Issue #726: File firewall exceptions are ignored
  • Issue #734: Hidden property for PublicProperty
  • Enhancement: Dir.AddItems() skips null items instead of throwing.
  • WiX binaries (WixSharp.wix.bin NuGet package) have been upgraded to v3.11.2
wixsharp - Release v1.12.0

Published by oleg-shilo about 5 years ago

  • Issue #695: FR - Implement Harvester using wix heat.
  • Issue #714: Incorrect fonts when building on Windows Server Core
  • Added XElement.GetAttribute extension method.
  • New class PublicProperty to encapsulate a public property which must be uppercase

New features:

New Harvester class that aggregates VS project binaries with WiX Heat utility. The most convenient way to use it is via extension method "AddVsProjectOutput" (curtecy of Giles Bathgate).

var project =
    new ManagedProject("HeatAggregatedMsi",
        new Dir(@"%ProgramFiles%\My Company\My Product",
            new File("Setup.cs")));

project.AddVsProjectOutput(
    @"TestApps\TestApp1\TestApp1.csproj",
    @"TestApps\TestApp2\TestApp2.csproj");

WixSharp has been extended with the native equivalent of the WiX Heat utility functionality with Files.FromBuildDir method:

var project =
    new Project("MyProduct",
        new Dir(@"%ProgramFiles%\My Company\My Product",
            Files.FromBuildDir(@"TestApps\TestApp1\bin\Release"),
            Files.FromBuildDir(@"TestApps\TestApp2\bin\Release", ".exe|.dll")
wixsharp - Release v1.11.1

Published by oleg-shilo about 5 years ago

  • Issue #704: Question: Localized progress action messages.
  • Issue #696: ComponentCondition on CloseApplication doesn't appear to be working
  • Removed ValidateAssemblyCompatibilityas no longer needed since .NET4.0 is arguably a better choice for the recommended runtime
  • Issue #604: Is it possible to suppress the "UAC prompt" text if UAC is not enabled?
  • Issue #701: FR: Access to 32/64bit registry keys in Custom Actions (using .NET3.5)
  • WixSharpVSIX (VS Templates): Release v1.8.3
    • Migrated to .NET4.0 as target runtime
    • ManagedUI progress message localization improvements triggered by #704
  • Added a Property.Secure:
    new Property("Gritting", "Hello World!"){ Secure = true })
    
  • More granular conditions for feature install/uninstall:
    var condition = feature.ShallInstall() && feature.IsInstalled();
    
wixsharp - Release v1.11.0.0

Published by oleg-shilo about 5 years ago

Special thanks to @GilesBathgate who provided an excellent contribution to this release.


  • Added registry values aggregator (RegKey):
    new RegKey(fullSetup, RegistryHive.LocalMachine, @"Software\My Company\My Product",
        new RegValue("Message", "Hello"),
        new RegValue("Count", 777)),
    
  • Issue #699: Wix Error for ServiceInstaller if at least one ServiceConfig parameter is not specified
  • Improvements to DigitalSignature to allow loading cert by sha1hash
  • Implemented custom message dialog instead (of the default MessageBox.Show) for displaying error message (if any detected) during the MSI session.
  • Issue #688: Adding prompt to CloseApplication prevents installer from completing.
  • Issue #683. Close MSI Interop handles when getting data from MSI
  • Issue #672: outdir and BuildMsiCmd fails because the outdir is not created
  • Issue #670: msi is always creating root folder, even if feature is disabled
wixsharp - Release v1.10.0.0

Published by oleg-shilo over 5 years ago

  • Issue #658: Question: how to close running application or wait until user close application manually

  • Issue #656: ExeFileShortcut changing folder name

  • Issue #649: How to add permissions to regkey

  • Issue #647: Interrupt CA execution #647;

  • Implemented Session.IsCanceled

  • Added File.OnProcess and DirFiles.OnProcess to provide custom handling on processing wildcards:

    new Files(@"..\Release Folder\test\*.exe")
    {
        OnProcess = file =>
        {
            file.OverwriteOnInstall = true;
        }
    }, . . .
    
wixsharp - Release v1.9.8

Published by oleg-shilo over 5 years ago

  • Issue #645: Add ampersand character (&) as xml delimiter
  • WixSharp.Extensions class that is implemented in both WixSharp.dll and WixSharp.Msi.dll is refactored to
    WixSharp.Msi.Extensions for the WixSharp.Msi.dll assembly.

This release bring breaking change to the WixSharp.Msi.dll assembly. This is done in order to avoid ambiguity when using both WixSharp.dll and WixSharp.Msi.dll assemblies at the same time.

While it is a breaking change it is very easy to handle and it requires only an update in the using clause:

using WixSharp.Msi;
// instead of old "using WixSharp;"

Note this code change is only required if you are using extension methods from WixSharp.Msi.dll

This release brings low risk changes only but it is marked on NuGet as a preview release. It is only to allow WixSharp.Msi.dll users a more managed transition to a new namespace. And the package will be promoted in full release in a few weeks.

wixsharp - Release v1.9.7.0

Published by oleg-shilo over 5 years ago

  • Issue #638: Implement REINSTALLMODE feature
project.ReinstallMode = "amus";
wixsharp - Release v1.9.6

Published by oleg-shilo over 5 years ago

  • Added COM registration support
    var project =
      new Project("MyProduct",
          new Dir(@"%ProgramFiles%\My Company\My Product",
              new File(@"Files\Bin\MyApp.exe",
                         new ComRegistration
                         {
                             Id = new Guid("6f330b47-2577-43ad-9095-1861ba25889b"),
                             Description = "MY DESCRIPTION",
                             ThreadingModel = ThreadingModel.apartment,
                             Context = "InprocServer32",
                             ProgIds = new[]
                             {
                                 new ProgId
                                 {
                                     Id = "PROG.ID.1",
                                     Description ="Version independent ProgID"
                                 }
                             }
                         })));
    
  • Issue #621: W0W6432Node/COM Registration
  • Issue #608: Create Shortcut on Desktop to dotnet.exe
  • Addressed candle warning on AutoElements.UACWarning = ""
  • Completely removed all traces of SetEnvVar.dll. Part of #620 fix.