修复在 WiX 3.8 中创建的设置时出错

Posted

技术标签:

【中文标题】修复在 WiX 3.8 中创建的设置时出错【英文标题】:Error repairing setup created in WiX 3.8 【发布时间】:2014-07-09 07:18:54 【问题描述】:

我在 WiX (3.8) 中创建了一个 Web 服务器设置,它安装正确,但是当我修复它时,我收到一个错误“安装过程中的致命错误”并且该过程被回滚。以下是我在日志中看到的内容

MSI (s) (F8:C4) [12:39:26:183]: Executing op: CustomActionSchedule(Action=WriteIIS7ConfigChanges,ActionType=11265,Source=BinaryData,Target=**********,CustomActionData=**********)
MSI (s) (F8:F8) [12:39:26:188]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI7B14.tmp, Entrypoint: WriteIIS7ConfigChanges
WriteIIS7ConfigChanges:  Error 0x80070002: Site not found for create application
WriteIIS7ConfigChanges:  Error 0x80070002: Failed to configure IIS application.
WriteIIS7ConfigChanges:  Error 0x80070002: WriteIIS7ConfigChanges Failed.
CustomAction WriteIIS7ConfigChanges returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 12:39:26: InstallFinalize. Return value 3.

我错过了什么吗?任何帮助表示赞赏,在此先感谢:)

【问题讨论】:

【参考方案1】:

如果是修复并且缺少站点名称,则很可能是在原始安装的 UI 对话框中输入了该名称。在修复中,没有用于重新输入站点名称的 UI,并且不会自动保存属性。它可能正在尝试配置一个没有名称的站点。一般来说,处理此类事情的最佳方法是在站点名称上使用 WiX 记住属性模式,以便保留它并可以进行修复。我不知道在这种特殊情况下这是否是一件好事,因为我不知道在现有配置更改之上再次编写配置更改是否会起作用或由代码正确处理。原始安装的详细日志应该告诉您哪些属性名称用于站点名称等。

如果您认为 IIS 配置更改不太可能会中断并且它们不需要修复,您可以考虑在 CA 的条件中添加“未安装”,以便修复不会调用它。

【讨论】:

以上是关于修复在 WiX 3.8 中创建的设置时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 Visual Studio 2008 创建新的 WiX 安装项目时出错

尝试使用在 react、graphql 和 apollo 中创建的服务器保存记录时出错

将表插入到我使用 sqlite 在 python 中创建的数据库中时出错

使用 jenkins 在 RTC 上保存构建定义时出错

如何使用 wix 3.8 安装程序在 windows 文件夹中创建文件夹

Wix v3.7 - 写入注册表值时出错