1

我们在 WiX 中有 2 个安装程序源,可以为具有相同产品版本、GUID 和包 GUID 的单个产品创建安装程序。

这 2 个安装程序项目将产生不同的输出,一个输出只是一个 MSI 文件 ( File1.msi ),而另一个项目输出是具有不同 MSI 文件名( File2.msi ) 的 CD-ROM 结构。

所以现在当我们使用单个 MSI 文件安装产品时出现问题,如果我们从其他 CD-ROM 输出调用 MSI,我们最终会得到下面提到的错误。

WiX 对话框

我尝试为两种安装程序输出保持相同的 MSI 文件名,然后上面的错误对话框已解决,但修复功能不起作用。

如果在产品的目标文件夹中删除了某些文件,则会显示指向 CD-ROM 安装程序源文件夹的源文件未找到错误。

请帮助我哪里出错了。我想支持没有此错误的修复安装。

4

2 回答 2

3

该对话框是预期的。除非在主要升级期间,否则您不能更改MSI 的名称

之后,如果您重新构建以创建不同的布局,则每个 MSI 可能都有一个独特的PackageCode,这使它们成为独特的包。这很可能是修复不起作用的原因。详细的日志文件应该说明一切。

于 2019-05-21T04:31:13.833 回答
0

更新:编译您的主 MSI,然后在其上运行管理映像并将提取的文件和 MSI 放在 CD 上?把压缩版本也放在那里——以防万一他们更喜欢那种版本(发生)。

我不确定当您以这种方式运行两种设置时会发生什么,但我认为引擎可能会检测到标记为管理映像提取的 MSI。我不知道。应该管用。MSI的内置方法,您无需与风车搏斗。


用户帐户:您是否正在创建任何 NT 用户帐户?您是否将FailIfExists属性设置为yes?请在此处查看: 用户元素(实用程序扩展)。设置是为了UpdateIfExists什么?(如果有的话)。

其他问题:可能还有其他问题以及 Rob 提到的问题。You can not use the same package code for both release types because a package code by definition identifies a unique file. 如果你试图“破解”它,就会出现各种类似 X 文件的问题。不是你想参加的战斗。

管理安装:这些天您为什么要在 CD 上分发不同的设置?使用您的设置的公司将在您的设置上运行管理安装,提取所有文件 - 这是一个更好的概念。它本质上是一个美化的文件提取,它是一个内置的 Windows Installer 概念,旨在为软件创建一个网络安装点 -除其他外。它本质上是提取所有文件并将媒体表为使用外部源文件。

链接列表

于 2019-05-21T11:20:03.103 回答