新手到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
元素。如果您的UIRef
是Product
的子节点,那么它肯定会被链接进来。然后,链接器遍历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
在哪里的更多细节,以便我们进一步帮助。