WiX v3.0.4325.0 was released on Friday, 25-July-08. You can download it from http://wix.sourceforge.net/releases/3.0.4325.0/.
New features
- Mike Carlson changed the preprocessor to stop evaluating expressions in a false <?if?> block. That lets you check for the presence of a preprocessor variable, for example, and use it in the block "knowing" that it’s defined.
Bug fixes
Posted in
WiX at July 26th, 2008.
No Comments.
WiX v3.0.4318.0 was released on Friday, 18-July-08. You can download it from http://wix.sourceforge.net/releases/3.0.4318.0/.
New features
- Neil Enns, still late of the MSBuild team and still working on secret stuff, added two new properties to the OsInfo custom actions that detect the presence of a WDDM driver and whether Desktop Window Manager (DWM) composition is enabled. See "OSInfo custom actions" in WiX.chm for details.
- Aaron added directory properties for .NET Framework root directories. See the "WixNetfxExtension" topic in WiX.chm for details.
- Mike Holcomb added better error messages in the setupexe "mini-chainer" when installation errors occur.
- I added support for Unicode filenames used as source files in cabinets.
- I added PathGetKnownFolder, PathIsAbsolute, and PathConcat to the DUtil library.
Bug fixes
Posted in
WiX at July 21st, 2008.
2 Comments.
Loc variables — using !(loc.id) syntax to refer to strings defined in a .wxl file — let you use a single set of source files to build multiple localized installers. Common uses include obvious localizable strings like the product name and error messages. Slightly less common, but just as important to the localization process, are strings that aren’t visible to the user, like product-code GUIDs. They work great but there’s a risk: Loc strings aren’t subject to the same validation and correction code that “normal” strings go through. GUIDs are a perfect example. Normal strings in a .wxs source file are validated and normalized by the compiler, adding {braces} and uppercasing them as necessary to fit the Windows Installer rules for GUIDs.
There’s an open feature request to get some of the same validation done for loc strings. Maybe some weekend…
Executive summary
When you use GUIDs in loc strings, make sure they’re uppercase and in braces.
Why
Loc variables are one type of bind-time variable. Bind-time variables are resolved at, well, bind time, which is part of the linking/binding job that Light.exe does. Preprocessor variables, using $(var.id) syntax, are resolved by Candle.exe. (Technically, preprocessing, as the pre- prefix implies, happens even before compilation.) Since it’s the compiler in Candle.exe that does the deepest validation, bind-time variables miss out on it. For now, anyway.
Posted in
WiX at July 17th, 2008.
No Comments.
WcaUtil is a static library of convenience functions for writing custom actions in native C++. One of the more useful functions is WcaLog, which writes messages into the Windows Installer log. The first argument to WcaLog is the level of the message:
- LOGMSG_TRACEONLY: Written to the log only in debug builds for debugging custom actions.
- LOGMSG_VERBOSE: Written to the log only when verbose logging is enabled.
- LOGMSG_STANDARD: Always written to the log.
WcaLog considers verbose logging enabled whenever any of the following is true:
- LOGVERBOSE property: There’s a property in your package named LOGVERBOSE, regardless of its value.
- MsiLogging property: There’s a property in your package named MsiLogging that contains a V character.
- Logging policy: The logging policy is set and contains a V character.
Otherwise, messages tagged with LOGMSG_VERBOSE will be ignored.
The second argument is a printf-style format string so there are a variable number of arguments (zero or more) after it which specify the values referred to in the format string. For example:
WcaLog(LOGMSG_VERBOSE, "App: %S found running, %d processes, setting ‘%S’ property.", wzApplication, cProcessIds, wzProperty);
Note that WcaLog uses ANSI strings for the format string and its arguments, so if you want to log a Unicode string, you need to use the %ls or %S field characters.
Posted in
WiX at July 15th, 2008.
16 Comments.
WiX v3.0.4311.0 was released on Friday, 11-July-08. You can download it from http://wix.sourceforge.net/releases/3.0.4311.0/.
New features
- Neil Enns, late of the MSBuild team and now working on secret stuff, contributed a new section of how-to topics for WiX.chm. (This was actually new in v3.0.4220, but I didn’t catch it. Mea culpa!)
- Neil also added support for multiple .wxl (loc-string collection) files in .wixproj projects.
- The SecureObj custom actions, triggered by the use of the PermissionEx element in WixUtilExtension, now support 64-bit systems, including both x64 and IA64.
- Jason added support for MSI 4.5 multi-package transactions to DTF.
- I added new file-i/o functions (FileReadPartial and FileWrite) and error reporting for XML parsing errors to the dutil library.
- Aaron added new documentation in addition to fixing WixUI bugs.
- Votive now has fancy new high-res/high-color icons on Windows Vista.
Bug fixes
Posted in
WiX at July 12th, 2008.
6 Comments.