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

Danny Streichert listen at dannypsilon.de
Tue Oct 27 12:00:47 PDT 2020


Thanks, for your answers.

The version of WiX is 3.11.2.4516.

Am 27.10.2020 um 18:18 schrieb Hoover, Jacob via wix-users:
> Hrm, but the MakeValidLongFileName call should take care of the :.  What version of WiX are you using?
>
>          private const string IllegalLongFilenameCharacters = @"[\\\?|><:/\*""]"; // illegal: \ ? | > < : / * "
>          private static readonly Regex IllegalLongFilename = new Regex(IllegalLongFilenameCharacters, RegexOptions.Compiled);
>
>          /// <summary>
>          /// Replaces the illegal filename characters to create a legal name.
>          /// </summary>
>          /// <param name="filename">Filename to make valid.</param>
>          /// <param name="replace">Replacement string for invalid characters in filename.</param>
>          /// <returns>Valid filename.</returns>
>          public static string MakeValidLongFileName(string filename, string replace)
>          {
>              return CompilerCore.IllegalLongFilename.Replace(filename, replace);
>          }
>
>
>
> From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Hoover, Jacob via wix-users
> Sent: Tuesday, October 27, 2020 12:13 PM
> To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
> Cc: Hoover, Jacob <Jacob.Hoover at greenheck.com>
> Subject: Re: [wix-users] Colon in product name of WiX3 setup project throws an error
>
> 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
> {
> get
> {
> 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");
> }
> else
> {
> // 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<mailto: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<mailto:wix-users at lists.wixtoolset.org>>
> Cc: Danny Streichert <listen at dannypsilon.de<mailto:listen at dannypsilon.de>>
> Subject: [wix-users] Colon in product name of WiX3 setup project throws an error
>
> Hello,
>
> 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
> following:
>
> "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"
> obj\Release\Bundle.wixobj
>
> 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()
> bei
> Microsoft.Tools.WindowsInstallerXml.Binder.CreateBurnManifest(String
> 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><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.
>
> ____________________________________________________________________
> 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.
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/



More information about the wix-users mailing list