The WiX Toolset discussions area on GitHub is currently offline because an army of spambots decided that WiX users were more interested in dodgy movie downloads than their favorite deployment-development toolset. We're waiting on GitHub to clean up all the offending entries. In the meantime, we had our first monthly meeting (albeit only three weeks after our last one) and so far, the new frequency is working out just fine. Our next meeting is scheduled for 18 June.

Issue triage

  • Building Wix, from @jchoover, came up from Jacob volunteering to fix an open issue. It turned into a thread and we want to make sure any changes that are necessary are captured in the repo readme, which Jacob has further volunteered to write down.

  • CVE-2024-29187 fix broke setup scenario, where setup gets started by a service account, from @rkieslinger, reports that the privilege check introduced in the latest batch of security fixes is inaccurate when using "special" service accounts. Or maybe the privilege check is accurate but the directory security doesn't work with those virtual or managed service accounts. Or...something else entirely. Research is needed so this issue is up for grabs.

  • SoftwareTag should pass NIST validation tool, from @dorssel, shows that the official software tag validation tool is not entirely happy with the output that the SoftwareTag element creates. The reporter helpfully provided a link to the "official website of the United States government," at least as far as SWID tags go, so someone investigating this up for grabs issue has all the data needed.

  • wix format doesn't save formatted file in-place, from @pedro-w, reports that the wix format command doesn't update files in-place. (wix format replaces WixCop.exe in WiX v3 and, 16 years later, still issues my favorite error message: The whitespace preceding this end element is incorrect. It's still rather judgy.) The reporter kindly looked at the code and implemented the proverbial one-line fix (along with many lines of a new test!).

  • Regression of RemoveFolderEx in WiX v4, from @johncalls, demonstrates a difference in behavior between WiX v3 and WiX v4 as it applies to RemoveFolderEx in WixToolset.Util.wixext. It appears to actually be a behavior difference in the core toolset, because it appears only with the edge case of an installer package that doesn't install any files. (What even is that?!) While investigating the bug, I discovered that I'd accidentally committed the grave sin of providing a misleading error message. It's guaranteed that a misleading error message would cause Future Bob a bad day, I volunteered to fix that and make RemoveFolderEx work in a file-free package.

  • wix convert fails when leading xml tag defines encoding, from @ijuedt, suggests that if you have a file with an XML declaration that specifies an encoding, wix convert "fails." The issue doesn't define what "fails" means, but I'm hoping that no redshirts were injured (or worse). It seems that the .NET XML library code should take care of XML minutiae like that but maybe there's some magic setting missing. up for grabs it is!

  • Parallelize UpdateFileFacadesCommand, from @MBroholmA, suggests that if you have an MSI package with 30,000 files and 100 instance tranforms...wait, two issues ago, it was a problem when you have zero files in a package and now it's 30,000? WiX really does everything, doesn't it? OK, anyway, a big package with a lot of files takes a lot of time in the internals of binding. The issue is suggesting that parallelizing that particular action would save time (given sufficient CPU cores). We agree that it's probably a perf win so we agreed to review a graciously-offered pull request.

  • Adapt to lack of v141 VC toolset on GitHub Actions runner images, from @barnson, was my reaction to a CI build failing in response to a pull request I submitted. It turns out that the team responsible for the VMs that run CI builds with GitHub Actions has decided to remove some of the Visual Studio components we rely on to build our native-code libraries. Those components let us target older versions of Visual Studio so we might lose that capability. We could install them at build time but that adds some to-be-determined amount of time to each CI build---and they're already approaching an hour. Rob and I discussed some options, all of which have drawbacks, lamented the actions others take that make our lives more difficult, and gave up in frustration. We'll evaluate options offline and spend some time getting back to where we were instead of, you know, spending that time creating features or fixing bugs.

  • Short reference for GUID variable, from @walker1637, reports getting an error when using $(PreprocessorVariable) syntax instead of $(var.PreprocessorVariable) syntax for an upgrade code. It turns out it's a bug in the WiX XSD, so it shows up as an error inside Visual Studio only. WiX is perfectly happy to accept both syntaxes. Rob volunteered to tweak the XSD.