I think we have found a bug in WiX (both 2 and 3) concerning the "modularization" of various field values when making a merge module. As we understand it "modularization" means appending the module GUID to things like component names to make them unique when actually merged into an MSI. The WiX code also does this for properties in formatted fields, presumably to avoid property name clashes with the "parent" MSI (or any other merge modules). It doesn't "modularize" if the property is a standard one, but this check fails to include standard directories (which can also be used as properties). We found this bug when attempting to set a registry value for an event source, e.g.:

<Registry Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\Eventlog\Application\Enterprise Library Logging" Name="EventMessageFile" Value="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll" Type="string" />

In this example [WindowsFolder] ended up as [WindowsFolder.moduleguid]. This of course fails to resolve in the MSI resulting in an empty substitution value. We checked the same thing using a VS merge module setup project and it was fine. We traced through the WiX2 source and added the additional check for a standard directory in OutputRow.cs (on or near line 231) and it now works ok e.g.:
 
string identifier = group.Value;
if (!Common.IsStandardProperty(identifier) &&
    !Common.IsStandardDirectory(identifier) &&
    (null == ignoreModularizations || !ignoreModularizations.ShouldIgnoreModularization(identifier)))
{
    sb.Insert(group.Index + group.Length, '.');
    sb.Insert(group.Index + group.Length + 1, moduleGuid);
}
 
We think the call to "IsStandardProperty" ought to automatically call "IsStandardDirectory" but that may be a too "global" change.
 
Could someone confirm whether this is a bug and whether I should raise a bug report for it.
 
Regards
 
Neil
 
Neil Sleightholm
X2 Systems Limited
[EMAIL PROTECTED]
 
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to