0

我有2个项目:

  1. InstallerUILibrary.wixlib- 包含一个自定义 WIX 对话框和 UI 片段,因此我可以重用它和对话框使用的可本地化文本。
  2. SomeInstaller.wixproj- 一个安装程序项目,它引用InstallerUILibrary.wixlib在其安装程序产品中使用 UI。

我已经InstallerUILibrary.wixlib用这样的条目本地化了文本:

<Control Id="DiskCost" Text="!(loc.InstallDirDiskCostDlgDiskCost)">

并包括en-us.wxlInstallerUILibrary.wixlib其中看起来像这样:

<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
    <String Id="InstallDirDiskCostDlgDiskCost">Disk Cost...</String>
</WixLocalization>

SomeInstaller但是看不到该wxl文件,因此由于可本地化的文本被破坏而无法构建。

这是预期的吗?我在引用我的项目文件时做了一些嘘声吗?某处是否有一些开关可以使一切正常?

我必须包含en-us.wxl在每个消费项目中吗?

4

1 回答 1

2

根据经验,我发现您需要在安装程序项目中添加至少一个本地化文件。这不需要包含任何字符串,只需要包含WixLocalization元素。

如果您没有任何.wxl文件,则“要构建的文化”文本框将是只读的。但是,一旦您添加了一个,这似乎会提示 Votive 一起行动并应用您要求的一些本地化。

然后你可以做的是“建议”它建立一个安装程序的不变文化版本,依赖于你选择的语言。通过添加这个

neutral,en-us;

到现在应该可以编辑的项目属性中的 Cultures to build 文本框。

总而言之,我的解决方案如下所示:

  • 安装程序UILibrary.wixproj - wixlib

    • 本土化
      • customDlg_en-US.wxl - 包含在 CustomDlg.wxs Culture="en-US" 中使用的字符串。
    • customDlg.wxs
  • SomeInstaller.wixproj - 安装程序 - 要构建的文化设置为neutral,en-US;

    • 本土化
      • invariantCulture.wxl - 包含一个带有Culture = ""(空字符串)的空 WixLocalisationElement
    • Product.wxs - 参考 CustomDlg

如果有人有一个更整洁的解决方案,那就太好了。

我发现一些阅读内容只有轻微的用处:

于 2016-10-26T09:08:35.963 回答