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.
Update: WiX v3.9 R2 has been released.
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.
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!
Today, Labor Day in the United States, we released WiX v3.9 Release Candidate 3. It might also be the final WiX v3.9 release. That depends on you.
Since we released WiX v3.9 RC1 back in July, the final release has always been “just a few weeks away.” That’s still true. However, as each of those weeks has passed, you have discovered and reported to the WiX issue tracker a number of bugs serious enough to prevent us from shipping.
As the bugs were regressions, mostly in Burn, in areas that received bug fixes and feature enhancements, we decided it was better to push out the v3.9 release date to give plenty of “bake time” for those changes.
Aside: We call it bake time but that’s not a really good metaphor. It’s more like pie cooling-off time, grilled meat resting time, and probably other similar things that people who actually cook or bake can tell you about.
We’re now looking at Halloween as the release date for WiX v3.9 RTM. 31-October is two months out which feels like a long time but gives us a buffer for any other lurking bugs.
Please download RC3 and try it with your packages and bundles. If you run into problems, please report them right away. If no more serious bugs are reported, RC3 will become RTM.
Update: WiX v3.9 RC3 has been released.
WiX v3.9 RC2 has been released and is ready for you to download and test. Right now, no additional changes are expected before we release WiX v3.9. But we would take a fix to a serious-enough bug — so please help root them out if they exist. Download, try it out, and report any bugs you find.
Here are the changes since the unnumbered release candidate:
jchoover: Switch WixBA over to using engine updates.
BobArnson: Install native SDK packages when VS Express SKUs (VC++ Express v10 or Windows Desktop Express v11/v12), in addition to Professional and later.
BobArnson: WIXBUG:4456 – Look at different things on opposite sides of an expression.
jchoover: Fixed some memory leaks in the engine.
BobArnson: WIXBUG:4466 – Open icons with read-sharing in DTF.
BobArnson: WIXBUG:4476 – Add x64 deputil.lib to NativeSdkMsi.
BobArnson: Use MediaTemplate in WiX setup. Include native SDK packages when the corresponding compiler is present, not just when the corresponding SDK is present. (The SDK is needed only to create the C++ custom action templates.)
BobArnson: WIXBUG:4460 – Switch license from HTML to plain text.
BobArnson: WIXBUG:4471 – Add warning about late RemoveExistingProducts scheduling with PerfCounterManifest.
RobMen: WIXBUG:4468 – fix missed suppression of suppress signature verification of MSI packages.
BobArnson: WIXBUG:4473 – Remove Wui.csproj from Wix.sln.
SeanHall: WIXBUG:4472 – Try to clean the downloaded update bundle from the cache.
SeanHall: WIXBUG:4467 – Create path2utl for path functions that require shlwapi.lib.
SeanHall: WIXBUG:4470 – Check whether the LaunchArguments are null before trying to format them.
flcdrg: WIXBUG:4437 – Adds CopyLocal COM reference assemblies to the list of assemblies to be included in managed CA.
champloo: WIXBUG:4097 – Fixes uncaught UnauthorizedAccessException in RecursiveFileAttributes.
RobMen: WIXFEAT:4188 – deprecate switches removed in WiX v4.0