尝试将 Wix .wxl 文件移动到 Wix .wixlib 项目
Trying to move a Wix .wxl file to a Wix .wixlib project
设置
所以我有两个 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 库项目不能 find/use .wxl 本身....
我真的很想让它在库中工作,所以我们只有一个 .wxl 文件,其中包含我们使用的所有字符串值,因此我们不必一遍又一遍地复制和粘贴同一个文件对于其他主要 Wix 项目。
非常感谢任何类型的帮助。如果我不够清楚,请随时要求澄清任何令人困惑的细节。请谢谢!
您需要做的就是告诉 WiX 链接器在构建主项目时使用哪种区域性。 WiX 库可能包含多种文化,因此您需要选择一种。
由于您使用的是 Visual Studio WiX 项目,您只需在项目的 属性 sheet 中执行此操作即可。右键单击 > 属性 > 构建 > 要构建的文化。
当使用命令行代替时,它是"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
设置
所以我有两个 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 库项目不能 find/use .wxl 本身....
我真的很想让它在库中工作,所以我们只有一个 .wxl 文件,其中包含我们使用的所有字符串值,因此我们不必一遍又一遍地复制和粘贴同一个文件对于其他主要 Wix 项目。
非常感谢任何类型的帮助。如果我不够清楚,请随时要求澄清任何令人困惑的细节。请谢谢!
您需要做的就是告诉 WiX 链接器在构建主项目时使用哪种区域性。 WiX 库可能包含多种文化,因此您需要选择一种。
由于您使用的是 Visual Studio WiX 项目,您只需在项目的 属性 sheet 中执行此操作即可。右键单击 > 属性 > 构建 > 要构建的文化。
当使用命令行代替时,它是"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