From: Sam M. <sa...@re...> - 2012-02-09 17:22:57
|
light 3.6.2520.0 fails when run on the following file. <?xml version="1.0" encoding="utf-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> <Bundle Name="Foo: Bar" Version="0.0.0.0"> <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/> <Chain> <ExePackage SourceFile="hello.exe"/> </Chain> </Bundle> </Wix> Here's the error message: $ light colon.wxs -ext WixBalExtension Microsoft (R) Windows Installer Xml Linker version 3.6.2520.0 Copyright (C) Microsoft Corporation. All rights reserved. light.exe : error LGHT0001 : Length cannot be less than zero. Parameter name: length Exception Type: System.ArgumentOutOfRangeException Stack Trace: at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) at Microsoft.Tools.WindowsInstallerXml.Binder.BundleInfo..ctor(String bundleFile, Row row) at Microsoft.Tools.WindowsInstallerXml.Binder.BindBundle(Output bundle, String bundleFile) at Microsoft.Tools.WindowsInstallerXml.Binder.Bind(Output output, String file) at Microsoft.Tools.WindowsInstallerXml.Tools.Light.Run(String[] args) This happens because ParseBundleElement sets a variable, logVariablePrefixAndExtension that concatanates the Bundle/Log element's PathVariable and Extension attributes, using a colon as a separator. It doesn't replace any colons already in the Prefix attribute, so later on the Binder gets confused when it splits the string on colon characters... I can file this as a bug if someone can add me to the project (sf username: rrsam) -- Sam Morris <sa...@re...> Red Redemption |