WiX Toolset v3.9 R2 is a maintenance release of WiX v3.9 that fixes several serious bugs:
- Bug 4600 | VSExtension Help custom action binaries are corrupt.
- Bug 4608 | Multiple prerequisites return failure, when 1st prerequisite is already installed and 2nd prerequisite is installed successfully.
- Bug 4609 | Bug in BVariantCopy() in src/burn/engine/variant.cpp
Thanks to @rseanhall and @firegiantco for fixing these bugs.
WiX Toolset v3.9 R2 is v3.9.1208.0 and is available from Codeplex.
The first interim build of WiX v3.10 has been released: WiX v3.10.1124.0 from wixtoolset.org. It includes support for integrating Votive into Visual Studio 2015 Preview and native and managed libraries for VS2015.
And that’s most of what we intend to accomplish with WiX v3.10. We will — of course! — fix bugs and add some small features in WiX v3.10 but the focus is on supporting Visual Studio 2015 and, if necessary, Windows 10. Rather than filling the available schedule with work, the goal is to finish the planned work quickly and be ready to ship WiX v3.10 as soon as possible after Visual Studio 2015 ships.
To do that, WiX v3.10 won’t include any large new features, to reduce the risk of long bug tails. We’ll release milestone builds around new milestone builds of VS2015 to make sure changes in VS2015 are reflected in WiX v3.10. Bug fixes and small features are welcome and a few are already queued up in pull requests on GitHub. More are welcome! Let’s talk on wix-devs.
WiX v3.9 was officially released on Hallowe’en 2014. The release build is the same as RC4: v3.9.1006.0. Download the release here.
For Rob’s take, see his blog post.
The following people contributed to WiX v3.9 over the 11 months since WiX v3.8 was released:
It’s great to see the list of contributors growing release after release!
The major features of WiX v3.9 are:
- @rseanhall lets you run a post-install configuration tool that requires elevated priveleges after a bundle is installed. WIP / Bug / Pull request
- @jchoover added update detection to the Burn engine. Bug / Pull request
- @rseanhall added support for multiple managed-BA pre-requisite packages. WIP / Bug / Pull request
- @rseanhall added support for secure string variables in Burn. WIP / Bug / Pull request
Minor features include:
- @jchoover updated the WiX installer to use the new update feature. Pull request
- @heaths added the Windows “Threshold” compatibility GUID to Burn. Pull request
- @FernandoNunes contributed localizations for Portuguese for WixSqlExtension. Pull request
- @robmen updated the WiX release feed for the update functionality in the WiX installer. Bug / Pull request
- @barnson changed the WiX installer to install the native-code WiX SDK for Visual Studio Express editions. Pull request
- @robmen marked deprecated command-line switches that are removed from WiX v4.0. Bug / Pull request / Pull request
- @barnson added a verbose message that reveals how much time was spent running ICE validation. Pull request
- @barnson made a few updates that made the WiX build faster on many-core machines. Pull request / Pull request
- @heaths added support for temporary object columns in DTF. Pull request
- @flcdrg added support in DTF custom action builds to include COM interop reference assemblies. Pull request
- @heaths added support for Visual Studio “Dev14″ in WixVSExtension detection properties. Pull request
- @heaths added support for user creation in WixUtilExtension to be non-vital (i.e., fail without causing rolling back). Bug / Pull request
- @rseanhall added a blocker to prevent .NET 4.5.2 from being used as a pre-req package on Windows 7 RTM because .NET 4.5.2 requires Windows 7 SP1. Bug / Pull request
- @heaths added policy support to move the Burn package cache to a non-default folder. Bug / Pull request
- @rseanhall added the WixBundleExecutePackageCacheFolder bundle variable. Bug / Pull request
- @robmen defaulted Burn to using hashes to verify payloads rather than digital signature. Bug / Pull request
- @barnson added the ProcessorArchitecture, WixBundleOriginalSourceFolder, and WixBundleFileVersion bundle variables. Bug / Bug / Pull request / Pull request / Pull request / Pull request
- @gordonmcshane added .NET 4.5.2 package groups to WixNetFxExtension. Pull request
- @johnbuuck added support for MSBuild v12.0 in project harvesting. Bug / Pull request
- @rseanhall added the @Cache=”always” value to force a bundle’s package to be cached even if the package won’t be installed. Bug / Bug / Pull request
- @heaths added a number of features and fixes to better support ref-counting and patching in Burn. Bug / Bug / Pull request / Pull request
- @mavxg added User/@LogonAsBatchJob to WixUtilExtension. Pull request
- @barnson added the -sextract switch to Melt.exe to not extract MSI package payloads but still update the .wixpdb. / Bug / Pull request
- @robmen fixed a long-standing bug in WixStdBA that caused a hang when installing as local system on Windows Vista and Server 2008. Bug / Pull request
- @robmen fixed a bug dating from WiX v2.0(!) that caused bad modularization when keywords like OR were part of property names. Bug / Pull request
- @rseanhall fixed a nitty-gritty bug in DTF tools that created custom action DLLs that didn’t exactly follow an arcane spec. Bug / Pull request
- @barnson fixed a bug in Burn that caused command lines to replicate like gray goo when a BA called Plan multiple times. Bug / Pull request
- @rseanhall added a missing extension to the binaries .zip.
- @rseanhall made sure that that a bundle’s bootstrapper application is the first payload in the UX container so Burn doesn’t try to execute an arbitrary file. Bug / Pull request
- @jchoover tweaked the WiX installer to skip checking for updates when it doesn’t make sense. Bug / Bug / Pull request
- @barnson fixed Burn so it resumes after rebooting. Bug / Pull request
- @barnson fixed Burn so it didn’t ignore a rollback of a related bundle. Bug / Pull request
- @jchoover fixed some memory leaks in Burn. Also fixed some memory leaks in Burn. Pull request
- @barnson fixed DTF so that it doesn’t exclusively lock icons when reading them. Bug / Pull request
- @barnson solved the case of the mysteriously missing native-code SDK files. Bug / Bug / Pull request / Pull request
- @barnson fixed Wix.sln by removing an obsolete file. Bug / Pull request
- @rseanhall made sure Burn cleans up a downloaded update when appropriate. Bug / Pull request
- @barnson made sure the WiX installer doesn’t crash when you don’t have a browser installed that knows about .html files. Bug / Pull request
- @barnson added a warning to the doc about a limitation with PerfCounterManifest. Bug / Pull request
- @rseanhall ensured that you can use LaunchTarget without LaunchArguments. Bug / Pull request
- @rseanhall changed DTF so it sets the working directory for a custom action. Bug / Pull request
- @rseanhall decided that Burn should decrypt files coming from an encrypted folder. Bug / Pull request
- @heaths converted, enhanced, and cleaned up some duplication in the WiX tests. Pull request / Pull request / Pull request / Pull request
- @heaths let you have an unreal table with way too many columns. Bug / Pull request
- @heaths optimized away the repair of dependent bundles of uninstalling a bundle is a no-op. Bug / Pull request
- @heaths showed progress in Burn when waiting on BITS to download. Bug / Pull request
- @heaths supported long command lines after rebooting in a bundle. Bug / Bug / Pull request
- @heaths optimized some Burn patch detection. Bug / Bug / Pull request
- @barnson validated MsiPackage product versions are legal for Burn (when using .msi packages built with something other than WiX, which apparently sometimes still happens). Bug / Pull request
- @barnson fixed a problem with a particular CustomTable definition. Bug / Pull request
- @champloo convinced tools to show an error rather than throw an exception when they can’t set file attributes. Bug / Pull request
- @firegiantco made it possible to use any legal exit code in ExePackage/ExitCode/@Value. Bug / Pull request
- @barnson updated the list of tables that prevent patch uninstall. Bug / Pull request
- @sryze fixed the layout of a WixUI dialog when localized into Russian. Pull request
- @rseanhall added verification to the VersionVariables for managed BAs. Bug / Pull request
- @rseanhall prevented Burn from entering an endless loop with a malformed command line. Bug / Pull request
- @robmen made sure error codes are reported during cache checking in Burn. Bug / Pull request
- @robmen pointed to new documentation on wixtoolset.org for error 0217. Bug / Pull request
- @barnson added a check of file size when determining whether a cabinet needs to be rebuilt in the linker. Bug / Pull request
- @barnson fixed the layout of a WixUI dialog for Portuguese. Bug / Pull request
- @barnson fixed a crash in Dark.exe. Bug / Pull request
- @barnson added some documentation about output type in Votive property pages. Bug / Pull request
- @barnson plugged a memory leak in Burn and removed some dead code. Bug / Pull request
- @rseanhall fixed Burn to ensure progress isn’t above 100 percent. Bug / Pull request
- @barnson fixed compression level when set with MediaTemplate. Bug / Pull request
- @barnson added some documentation to clarify the things that change “bitness” when using the -arch switch. Bug / Pull request
- @barnson prevented infinite recursion of include files by enforcing a maximum depth. Bug / Pull request
- @rseanhall wielded the red pencil and improved the documentation. Pull request / Pull request
- @barnson restored MsuPackage’s ability to set RemotePayload. Bug / Pull request
- @rseanhall supported DTF being installed into the GAC. Bug / Pull request
- @barnson clarified an error message about quotes in filenames. Bug / Pull request
- @ericschultz ensured that VsizPackage ids that contain spaces are quoted when passed to VsixInstaller. Bug / Pull request
- @barnson fixed a crash in Heat. Bug / Pull request
Like WiX v3.8, v3.9 took about 11 months. We’d aimed for a shorter cycle but missed. I’m not going to lose any sleep over that; we did good work and v3.9 looks to be a great release.
Next up: We know WiX v3.10 is about Visual Studio “Dev14″ and Windows 10. What else? The conversation happens on the wix-devs mailing list.
Over in a WiX v4.0 pull request, Rob and I were discussing what the default compression level should be in WiX v4.0. In WiX v3.x, the default compression level is “mszip” which, listening to legend and lore, I always considered to provide decent compression and decent performance. Rob suggested using “high” compression level, which I’d always avoided except for nightly builds. Sometimes not even then since it’s known—again, legend and lore—to be extremely slow.
As I point out in the pull request, however, the only way to be sure is to measure it.
So that’s what I did. Continue reading Cabinet compression testing
About a month ago, I announced WiX v3.9 RC3 and said:
If no more serious bugs are reported, RC3 will become RTM.
Well, we went several weeks with no new serious bugs reported against WiX v3.9. In fact, we still haven’t received a serious, newly-reported bug against WiX v3.9. Instead, we received confirmation on a fix for a long-standing bug discovered over a year ago and likely present all the way back to WiX v3.6. Frequent contributor Sean Hall discovered the key in some MSDN documentation and Mark Weaver confirmed the fix on the wix-devs mailing list.
So we took that fix and a couple of other very-low-risk fixes that were ready to be merged.
The result is WiX v3.9 RC4.
Because the fixes were took were minor and focused, we believe our Halloween release date is still feasible. We don’t anticipate any other changes for WiX v3.9 but, as always, a serious-enough bug can change that. Download, test, and let us know!