[wix-users] Colon in product name of WiX3 setup project throws an error

Hoover, Jacob Jacob.Hoover at greenheck.com
Tue Oct 27 10:12:34 PDT 2020

The log file name uses the project name, but : isn’t valid in a file name.
        public string LogPathPrefixExtension
            get { return (string)this.Fields[12].Data ?? String.Empty; }
            set { this.Fields[12].Data = value; }
        public string LogPrefix
                string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':');
                if (2 > logVariableAndPrefixExtension.Length)
                    return String.Empty;
                string logPrefixAndExtension = logVariableAndPrefixExtension[1];
                int extensionIndex = logPrefixAndExtension.LastIndexOf('.');
                return logPrefixAndExtension.Substring(0, extensionIndex);

It also seems there is some field encoding of data…

Looks to me that the compiler needs to be fixed, and the proper answer is probably to just strip out the :’s from the name (or replace them with _’s):

private void ParseBundleElement(XmlNode node)
            if (String.IsNullOrEmpty(name))
                logVariablePrefixAndExtension = String.Concat("WixBundleLog:Setup.log");
                // Ensure only allowable path characters are in "name" (and change spaces to underscores).
                fileSystemSafeBundleName = CompilerCore.MakeValidLongFileName(name.Replace(' ', '_'), "_");
                logVariablePrefixAndExtension = String.Concat("WixBundleLog:", fileSystemSafeBundleName, ".log");

From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Danny Streichert via wix-users
Sent: Tuesday, October 27, 2020 11:26 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Cc: Danny Streichert <listen at dannypsilon.de>
Subject: [wix-users] Colon in product name of WiX3 setup project throws an error


is it normal that, if in an product name of an setup project a colon is,
a error from light.exe will throws?

I have a Bundle in which a x86 and a x64 msi is.

If there is a colon in my product name of a setup project and I call the

"C:\Program Files (x86)\WiX Toolset v3.11\bin\Light.exe" -out
"C:\Dev\KKK\kkk SetupBundle\bin\Release\mmm_Setup.exe" -pdbout
"C:\Dev\KKK\kkk SetupBundle\bin\Release\mmm_Setup.wixpdb" -ext
"C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixUtilExtension.dll"
-ext "C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixBalExtension.dll"
-contentsfile "obj\Release\kkk
SetupBundle.wixproj.BindContentsFileList.txt" -outputsfile
"obj\Release\kkk SetupBundle.wixproj.BindOutputsFileList.txt"
-builtoutputsfile "obj\Release\kkk
SetupBundle.wixproj.BindBuiltOutputsFileList.txt" -wixprojectfile
"C:\Dev\KKK\kkk SetupBundle\kkk SetupBundle.wixproj"

the following error comes back:

light.exe : error LGHT0001 : Die Länge darf nicht kleiner als 0 (null) sein.
Parametername: length

Exception Type: System.ArgumentOutOfRangeException

Stack Trace:
   bei System.String.Substring(Int32 startIndex, Int32 length)
   bei Microsoft.Tools.WindowsInstallerXml.WixBundleRow.get_LogPrefix()
outputPath, WixBundleRow bundleInfo, WixBundleUpdateRow updateRow,
WixUpdateRegistrationRow updateRegistrationInfo, String path, List`1
allRelatedBundles, List`1 allVariables, List`1 orderedSearches,
Dictionary`2 allPayloads, ChainInfo chain, Dictionary`2 containers,
Dictionary`2 catalogs, Table wixBundleTagTable, List`1
approvedExesForElevation, Dictionary`2 commandLinesByPackage)
   bei Microsoft.Tools.WindowsInstallerXml.Binder.BindBundle(Output
bundle, String bundleFile)
   bei Microsoft.Tools.WindowsInstallerXml.Binder.Bind(Output output,
String file)
   bei Microsoft.Tools.WindowsInstallerXml.Tools.Light.Run(String[] args)

Does anyone know this behavior and can help?

WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/<http://www.firegiant.com>
NOTE: This email was received from an external source. Please use caution when opening links or attachments in the message.

More information about the wix-users mailing list