使用 WiX 安装程序的索引文件

Posted

技术标签:

【中文标题】使用 WiX 安装程序的索引文件【英文标题】:Indexed file using WiX installer 【发布时间】:2014-10-27 08:34:59 【问题描述】:

我正在开发一个具有一些 Windows 和 ios 功能的安装程序。到目前为止,我们还没有专门的 iOS 安装程序,所以我们开发了一个常规的 Windows 安装程序,然后将 iOS 文件复制到 Mac 计算机上。

我有一个包含以下详细信息的 iOS 文件:

File type: iOS File
Attributes: AI

所以我创建了我的 WiX 文件并收集了那个特定的文件。当我安装我的包并查看这个特定的文件详细信息时,它们会发生一些变化......安装后它看起来像这样:

File type: iOS File
Attributes: A

它丢失了I 部分,并且无法正常工作。在this link、A = ArchivedI=Indexed 之后,我的文件丢失了它的索引部分并且无法正常工作。

使用 WiX,它被安装为常规文件:

<Component Id="cmp02966D4702C4F3FFBDF68F2A392C52F9" Directory="dir354E18D7AD4B72C9165606D96AE25DAB" Guid="2AC77104-550F-4E55-9CCC-95F89C8A6545">
     <File Id="filA16E0AF72FB4B00DBBD98D3274DD7C86" KeyPath="yes" Source="$(var.sourceFolder)bin\$(var.ios)\Assemblies\Packages.ios.framework\Versions\A\Packages.ios" />
</Component>

那么... 有什么方法可以使用 WiX 来安装我的文件并保留该索引?

注意:此文件是来自另一个快捷方式的索引文件(我也有复制问题...)。

【问题讨论】:

【参考方案1】:

我不认为该软件停止工作是因为缺少 I 属性。更多详情请查看this question。

A 属性由系统设置为自上次备份操作以来已更改的任何文件。因此,当您将文件安装到目标系统时,它被认为是那里的新文件,并且显然不包含在最近的备份中。 A 属性保持不变是很自然的。

I 属性指示系统不要将其包含在系统索引列表中。据我了解,当您安装新文件时,默认行为不会被排除。这就是安装文件中缺少I 属性的原因。

我认为您不应该尝试更改这些属性并让 Windows 完成其工作。此外,深入调查您的 iOS 应用程序的故障 - 我怀疑它与这些属性无关。

【讨论】:

以上是关于使用 WiX 安装程序的索引文件的主要内容,如果未能解决你的问题,请参考以下文章

WIX安装项目未完全卸载应用程序

WiX 安装程序生成一个可执行文件

无需卸载的 Wix 安装程序升级

如何使用 WiX 安装程序注册文件类型/扩展名?

向 WiX 安装程序添加自定义操作

WiX 安装程序在卸载时删除文件,但在升级时不删除