WiX 3.7 UI链接不正确



新手到WiX这里…我已经创建了我的WiX安装包,它正确地安装了所有功能。然后我尝试添加一个UI到它与以下:

<UIRef Id="WixUI_Minimal" /> 
<UIRef Id="WixUI_ErrorProgressText" />

和I链接"light -ext wixuextension -cultures:en-us"。它找到这个扩展,因为如果我用一个不存在的名称尝试它,它会给出一个错误,但得到的msi包只有30kb。我认为这应该稍微大一点,如果UI扩展正确链接?

当我运行msi时,它只是给出了正常的进度条,而不是我期望从WixUI_Minimal中获得的额外UI。

所有的引用似乎声称,一个简单的UIRef是所有你需要得到一个UI时,包被正确链接…是否有一种已知的方法可以使链接不正确地发生,而不会抛出错误(即使我使用-pedantic链接)?

当您添加UI时,MSI可能不会显着变大。默认情况下提供的图形并不多。然而,如果你在安装过程中没有看到UI,那就意味着UI没有被链接进去。

UIRef需要在引用段中。链接器开始的第一个部分是Product元素。如果您的UIRefProduct的子节点,那么它肯定会被链接进来。然后,链接器遍历Product元素中的所有引用(任何以Ref结尾的都是引用,许多其他属性也是如此),在其他Fragment元素中寻找所需的元素。然后链接器将这些Fragment元素中的所有内容拉入。例如:

<Product>
   <DirectoryRef Id='TARGETDIR' />
</Product>
<Fragment>
    <Directory Id='TARGETDIR' Source='SourceDir' />
    <BinaryRef Id='icon' />
<Fragment>
<Fragment>
    <Binary Id='icon' Source='pathtomy.ico' />
</Fragment>
<Fragment>
   <UIRef Id='WixUI_Minimal' />
</Fragment>

在上面的示例中,链接器将包含前三个部分。然而,包含UIRef='WixUI_Minimal'的部分被省略了,因为没有任何引用它。为了解决这个问题,可以将UIRef移动到任何其他Fragment元素。

要进行测试,请尝试将UIRef元素移动到Product元素。如果这不起作用,请在您的问题中提供有关您的UIRef在哪里的更多细节,以便我们进一步帮助。

相关内容

  • 没有找到相关文章

最新更新