新手到WiX这里......我创建了我的WiX安装程序包,它正确安装了所有功能。然后我尝试使用以下内容添加UI:
<UIRef Id="WixUI_Minimal" />
<UIRef Id="WixUI_ErrorProgressText" />
我与“light -ext WixUIExtension -cultures:en-us”联系。它找到了这个扩展名,因为如果我用一个不存在的名称来尝试它会产生错误,但是得到的msi包只有30kb。如果UI扩展名正确链接,我认为这应该稍大一点?
当我运行msi时,它只是提供了正常的进度条,没有我期望从WixUI_Minimal获得的其他UI。
所有引用似乎都声称只需要一个简单的UIRef即可在正确链接包时获取UI ...是否有一种已知的方法可以使链接无法正确发生且不会抛出任何错误(即使我链接-pedantic)?
答案 0 :(得分:1)
添加UI时,MSI可能不会显着增大。默认情况下提供的图形不多。但是,如果您在安装过程中没有看到UI,则表示UI未被链接。
UIRef
需要位于参考部分。链接器的第一部分是Product
元素。如果您的UIRef
是Product
的孩子,那么它肯定会被链接进去。然后链接器遍历Product
元素中的所有引用(以{{1}结尾的任何内容}和许多其他属性一样是一个引用)在其他Ref
元素中查找所需的元素。然后链接器会提取这些Fragment
元素中的所有内容。例如:
Fragment
在上面的示例中,链接器将包含前三个部分。然而,<Product>
<DirectoryRef Id='TARGETDIR' />
</Product>
<Fragment>
<Directory Id='TARGETDIR' Source='SourceDir' />
<BinaryRef Id='icon' />
<Fragment>
<Fragment>
<Binary Id='icon' Source='path\to\my.ico' />
</Fragment>
<Fragment>
<UIRef Id='WixUI_Minimal' />
</Fragment>
的部分被省略,因为没有引用它。要解决此问题,可以将UIRef='WixUI_Minimal'
移动到任何其他UIRef
元素。
要进行测试,请尝试将Fragment
移至UIRef
元素。如果这不起作用,请在您的问题中提供更多详细信息,了解Product
对我们的帮助。