Release v1.0.35.0

Rating: No reviews yet
Downloads: 68
Change Set: a445e3a05dea
Released: Apr 17, 2016
Updated: Apr 18, 2016 by oleg_s
Dev status: Stable Help Icon

Recommended Download

Application WixSharp.
application, 23873K, uploaded Apr 18, 2016 - 68 downloads

Release Notes

  • New `Install-Package WixSharp.wix.bin` package has been published.
  • Implemented UtilsFileSearch dedicated class
  • Implemented Project.AddWixFragment
  • Removed all old obsolete API
  • Issue#111: Failing to load WiX assemblies from VisualStudio. Updated NuGet WixSharp.bin package - added BootstrapperCore.dll
  • Issue#110: Please update cscs.exe. Updated to v3.12.2.0
  • MsiInterop.cs has been reimplemented to solve the licensing clash (MIT vs LGPL). Triggered by MIT on top of LGPL
  • Issue#109: Support putting FirewallException in Component. Added FirewallException.IsProcessSpecific member
  • Issue#107 ManagedUI scaling issue
    • Added ManagedUIShell.OnCurrentDialogChanged event and ManagedUIShell.OnCurrentDialog property
    • Implemented automatic disabling of feature tree custom-draw checkbox
  • Issue#106: Tasks.LatestFrameworkDirectory returns an invalid directory. The routine is fixed and property name is changed to more adequate 'CurrentFrameworkDirectory'
  • Added SetupEventArgs.ManagedUIHandle and WIXSHARPMANAGEDUI_HANDLE session property
  • Added generic interface for processing user defined WixEntities (e.g. to support WiX extensions)
  • Issue#103: It should be possible to install multiple IISVirtualDirs under a single WebSite
  • Issue#102: WebSite API: WebSite.Name should be completely hidden in favour of WebSite.Description
  • Issue#101: Wix# Creates Id attribute instead of Ip attribute in WebAddress element (from pull request #8740)

Most important changes
Now you can download everything for building MSI straight from NuGet. For bringing WiX Tools from NuGet use `Install-Package WixSharp.wix.bin` command It's particularly useful for building on build servers. Don't forget to point your build script to the location of this package binaries:

Compiler.WixLocation = @"<project path>\packages\WixSharp.wix.bin.<version>\bin";  

Wix # now natively supports both Registry and File Search fragments. And they can be added directly to the project without dealing with XML events:

                            new UtilRegistrySearch 
                                Root = RegistryHive.LocalMachine,
                                Key = @"Key=SOFTWARE\Microsoft\Net Framework...\Full",
                                Value = "Version",
                                Variable = "Netfx4FullVersion"
                            new UtilFileSearch
                                Path = @"[ProgramFilesFolder]Adobe\adobe.exe",
                                Result = SearchResult.exists,
                                Variable = "AdobeInstalled"

A long standing issue with ManagedUI not being scaled properly on non standard DPI displays finally has been solved. No changes in user code are required. All done under the hood.

Wix# allows now creating a fist-class citizen 'WiX entity' classes that can be integrated with Wix# runtime without modifying the compilers.

You can implement any WiX element currently not supported by Wix# by defining the class that implements IGenericEntity interface. The fields and properties of this class can be automatically serialized into XML attributes and the Process() method allows you to control how the class XML is injected into WiX XML document.

var project = new Project("CustomActionTest",
                    new Dir(@"%ProgramFiles%\CustomActionTest",
                        new RemoveFolderEx 
                            On = InstallEvent.uninstall, 
                            Property = "DIR_PATH_PROPERTY_NAME" 
                        new File("readme.txt")));
. . .
public enum InstallEvent

public class RemoveFolderEx : WixEntity, IGenericEntity
    public InstallEvent? On;
    public string Property;
    new public string Id;

    public void Process(ProcessingContext context)
        //candle needs to use WixUtilExtension.dll

        XName name = WixExtension.Util.ToXName("RemoveFolderEx");


The code above produces the following XML fragment:
<Component Id="Component.readme.txt" Guid="...">
    <File Id="readme.txt" Source="readme.txt" />
            xmlns="" />

Reviews for this release

No reviews yet for this release.