WiX Toolset v5 Bundle本地化标识符重复问题求助
WiX Toolset v5 Bundle本地化重复ID错误解决方案
编译时出现的The localization identifier 'Title' has been duplicated in multiple locations.错误,根源是WiX v5的bal:WixStandardBootstrapperApplication(WSBA)自带了默认主题的本地化资源,其中已经包含了Title、Caption这类通用字符串ID,而你自定义的thm.wxl文件又重复定义了相同ID,导致冲突。
解决方法
方法一:移除重复的本地化ID
直接删除自定义wxl文件中与WSBA内置资源重复的ID(比如Title、Caption),只保留你新增或需要修改的自定义本地化项。修改后的wxl示例:
<WixLocalization Culture="de-de" Language="1031" xmlns="http://wixtoolset.org/schemas/v4/wxl"> <!-- 仅保留自定义的本地化字符串,移除与WSBA内置重复的项 --> ... </WixLocalization>
方法二:禁用WSBA内置本地化
如果需要完全自定义所有UI字符串,可在bal:WixStandardBootstrapperApplication标签中添加SuppressUILocalization="yes"属性,让WSBA忽略内置的本地化资源,仅使用你提供的wxl文件。修改后的Bundle.wxs示例:
<BootstrapperApplication> <bal:WixStandardBootstrapperApplication LogoFile="resources\logo.png" LicenseFile="resources\EULA.en-US.rtf" ThemeFile="resources\theme.xml" ShowVersion="yes" Theme="rtfLargeLicense" SuppressUILocalization="yes" /> <Payload Name="1033\thm.wxl" SourceFile="1033\thm.wxl" /> <Payload Name="1031\thm.wxl" SourceFile="1031\thm.wxl" /> </BootstrapperApplication>
注意:使用此方法时,必须确保你的wxl文件包含WSBA主题所需的所有本地化ID,否则运行时会出现缺失字符串的问题。
内容的提问来源于stack exchange,提问作者cz-dev-ge
相关产品推荐
相关产品推荐

