0

设置

所以我有两个 Wix 项目,一个是我们的主要项目,其中包含 Product.wxs 文件,第二个是我们的共享 .wxs 文件库。我们的主要 Wix 项目引用了库之一。这也是 Visual Studio 2015 解决方案中的全部内容。主 Wix 项目中还有一个 .wxl 文件(WixLocalization 的东西)。

我想要完成的事情

我想将该 .wxl 文件移动到库 Wix 项目,因为它也可以共享给其他项目。

我遇到的问题

当我将文件复制到库项目并删除主项目中的原始文件时,我在 Visual Studio 中收到一堆编译错误,说“本地化变量!(loc.NameOfString)未知。请确保变量是定义。”。编译主项目时出现此错误。Wix 库一编译成功。因此,我无法再创建安装程序。

到目前为止我做了什么

我尝试在 Wix 库项目中搜索使用 .wxl 文件的此类主题,但没有运气。

如果将这些字符串值移动到除“!(loc.StringName)”语法之外的Wix库,我已经尝试深入研究是否还有其他语法可以使用这些字符串值。

我也检查了项目文件,看看是否有一些我需要添加的参考。关于它的“有趣”之处在于 .wxl 中的字符串值仅用于库本身的 .wxs 文件中。例如,我在库中有一个 UI Dialog .wxs 文件,它使用 .wxl 文件中的“!(loc.Title)”字符串值。主项目中的 Product.wxs 文件不使用这些字符串值。

我觉得很奇怪,Wix 库项目本身无法找到/使​​用 .wxl ......

我真的很想让它在库中工作,所以我们只有一个 .wxl 文件,其中包含我们使用的所有字符串值,所以我们不必为其他主要的 Wix 项目一遍又一遍地复制和粘贴同一个文件.

任何类型的帮助将不胜感激。如果我不够清楚,请随时要求澄清任何令人困惑的细节。谢谢,麻烦您了!

4

1 回答 1

0

您需要做的就是告诉 WiX 链接器在构建主项目时使用哪种文化。WiX 库可能包含多种文化,因此您需要选择一种。

当您使用Visual Studio WiX 项目时,您只需在项目的属性表中执行此操作。右键单击 > 属性 > 构建 > 要构建的文化。

WiX 项目属性

当使用命令行时,它是“light.exe”的以下参数:

-cultures:<cultures>  semicolon or comma delimited list of localized
                      string cultures to load from .wxl files and libraries.
                      Precedence of cultures is from left to right.

例子:

light.exe [other parameters] -cultures:en-US
于 2017-03-27T18:45:39.490 回答