【发布时间】:2022-07-23 03:52:52
【问题描述】:
我已使用 WiX 工具包创建安装程序。安装程序 bundle.wxs 文件有 4 个我按顺序安装的 msi 包。这是 bundle.wxs 的代码:
<chain>
<MsiPackage Id="MSOLEDBSQLDriver"
SourceFile="..\..\..\..\..\..\third-party\MSOLEDBSQL\msoledbsql.msi"
DisplayInternalUI="no"
Compressed="yes"
Vital="yes"
ForcePerMachine="yes">
<MsiProperty Name="IACCEPTMSOLEDBSQLLICENSETERMS" Value="YES" />
<MsiProperty Name="ACCEPTEULA" Value="1" />
</MsiPackage>
<MsiPackage Id="MSODBCSQL"
SourceFile="..\..\..\..\..\..\third-party\SQL Server Express\msodbcsql.msi"
DisplayInternalUI="no"
Compressed="yes"
Vital="yes"
ForcePerMachine="yes">
<MsiProperty Name="IACCEPTMSODBCSQLLICENSETERMS" Value="YES" />
<MsiProperty Name="ACCEPTEULA" Value="1" />
</MsiPackage>
<MsiPackage Id="MSSQLCMDLNUTILS"
SourceFile="..\..\..\..\..\..\third-party\SQL Server Express\MsSqlCmdLnUtils.msi"
DisplayInternalUI="no"
Compressed="yes"
Vital="yes"
ForcePerMachine="yes">
<MsiProperty Name="IACCEPTMSSQLCMDLNUTILSLICENSETERMS" Value="YES" />
<MsiProperty Name="ACCEPTEULA" Value="1" />
</MsiPackage>
<RollbackBoundary />
<MsiPackage Id="MainPackage"
SourceFile="..\Application\bin\Release\ApplicationInstaller.msi"
DisplayInternalUI="yes"
Compressed="yes"
Vital="yes">
<MsiProperty Name="INSTALLDIR" Value="CSNode" />
<MsiProperty Name="CONFIGFILE" Value="[CONFIGFILE]"/>
<MsiProperty Name="AddDesktopShortcut" Value="[AddDesktopShortcutMsiVariable]" />
</MsiPackage>
</Chain>
安装顺利,没有任何问题,但是当我尝试从程序和功能中卸载应用程序时,我收到一条安装失败消息,并在我的 Temp 文件夹中显示以下日志:
[1C78:092C][2022-03-16T13:38:45]i326: Removed dependency: {7dd16205-28b8-46f2-bc9f-b85e6a7b0525} on package provider: {EDA3FABE-E481-4E69-A7B0-E845DF0FEC22}, package MSSQLCMDLNUTILS
[1C78:092C][2022-03-16T13:38:45]i329: Removed package dependency provider: {EDA3FABE-E481-4E69-A7B0-E845DF0FEC22}, package: MSSQLCMDLNUTILS
[1C78:092C][2022-03-16T13:38:45]i301: Applying execute package: MSSQLCMDLNUTILS, action: Uninstall, path: (null), arguments: ' ALLUSERS="1" ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" IACCEPTMSSQLCMDLNUTILSLICENSETERMS="YES" ACCEPTEULA="1"'
[1C78:092C][2022-03-16T13:38:45]e000: Error 0x80070643: Failed to uninstall MSI package.
[1C78:092C][2022-03-16T13:38:45]e000: Error 0x80070643: Failed to execute MSI package.
[139C:1398][2022-03-16T13:38:45]e000: Error 0x80070643: Failed to configure per-machine MSI package.
[139C:1398][2022-03-16T13:38:45]i319: Applied execute package: MSSQLCMDLNUTILS, result: 0x80070643, restart: None
[139C:1398][2022-03-16T13:38:45]e000: Error 0x80070643: Failed to execute MSI package.
[1C78:092C][2022-03-16T13:38:45]i318: Skipped rollback of package: MSSQLCMDLNUTILS, action: Install, already: Present
[139C:1398][2022-03-16T13:38:45]i319: Applied rollback package: MSSQLCMDLNUTILS, result: 0x0, restart: None
[1C78:092C][2022-03-16T13:38:45]i323: Registering package dependency provider: {EDA3FABE-E481-4E69-A7B0-E845DF0FEC22}, version: 15.0.2000.5, package: MSSQLCMDLNUTILS
[1C78:092C][2022-03-16T13:38:45]i325: Registering dependency: {7dd16205-28b8-46f2-bc9f-b85e6a7b0525} on package provider: {EDA3FABE-E481-4E69-A7B0-E845DF0FEC22}, package: MSSQLCMDLNUTILS
还有一些与此问题相关的其他问题,基于我添加了ForcePerMachine="yes" 参数,但这也不起作用。我一直在想办法解决这个问题,但还没有找到适合我的解决方案。
有人可以帮帮我吗?
【问题讨论】:
-
与捆绑日志一起,您会发现每个安装的 MSI 的 MSI 日志文件。您需要在相应的 MSI 日志文件中查找根本问题。
标签: wix windows-installer