尝试将Wix .wxl文件移动到Wix .wixlib项目

时间:2017-03-24 21:28:29

标签: visual-studio-2015 wix windows-installer wix3.10 wixlib

设置

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

我想要完成的事情

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

我遇到的问题

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

我做得很远

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

如果除了"!(loc.StringName)"之后移动到Wix库,我是否尝试过使用其他语法来使用这些字符串值?语法。

我也查看了项目文件,看看是否有一些我需要添加的引用或其他内容。 "搞笑"关于它的事情是.wxl中的String值仅用于库本身的.wxs文件中。例如,我在库中有一个UI Dialog .wxs文件,它使用"!(loc.Title)" .wxl文件中的字符串值。主项目中的Product.wxs文件不使用这些String值。

我觉得很奇怪,Wix库项目本身并不能找到/使用.wxl ....

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

非常感谢任何类型的帮助。如果我不够清楚,请随时要求澄清任何令人困惑的细节。拜托,谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

WiX project properties

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

/* Div that contains the iFrame */
#interactWithNav {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    -webkit-filter: blur(5px);
    filter: blur(5px);
    display: table;
    text-align: center;
}

/* iFrame that loads the page with the fixed elements */
#interactWithNavFrame {
    border: 0;
    width: 100%;
    height: 100%;
}

示例:

-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.