【发布时间】:2012-06-11 13:45:36
【问题描述】:
我正在尝试执行由 C# (.NET 3.5) 编写的自定义操作,该操作依赖于单个 DLL(也称为 C# 3.5)。我在安装中包含了 .EXE 和 .DLL,并验证了它们是否被复制到安装位置。但是,每次我尝试运行自定义操作时,都会收到以下错误:
操作开始时间 7:21:16:InstallFinalize。 错误 1721。此 Windows 安装程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。操作:UpgradeTo022,位置:C:\Program Files\Test\,命令:Upgrade-0.2.2.EXE MSI (s) (CC:38) [07:21:19:061]:产品:测试 -- 错误 1721。此 Windows 安装程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。操作:UpgradeTo022,位置:C:\Program Files\Test\,命令:Upgrade-0.2.2.EXE
自定义动作定义如下:
<CustomAction Id="UpgradeTo022"
Directory="INSTALLLOCATION"
Impersonate="no"
Execute="deferred"
ExeCommand='Upgrade-0.2.2.EXE'>
注意:自定义操作必须以提升的权限运行,因此具有延迟执行和 Impersonate="no" 属性。
具体安排如下:
<InstallExecuteSequence>
<Custom Action="UpgradeTo022" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>
文件安装如下:
<Component Id="CMP_UpgradeCommon" Guid="8ECF5076-732E-4010-A33B-BE362D818949" Win64="yes">
<File Id="FILE_UpgradeCommonDLL"
Source="..\Upgrade\UpgradeCommon\bin\Debug\UpgradeCommon.dll" Vital="yes"/>
</Component>
我看到一些关于运行托管 EXE 的暗示是自定义操作和 MSis 的问题,但没有真正的明确答案。
我也尝试过只运行一个非常简单的没有依赖关系的 .EXE 作为自定义操作,但没有运气。
对于创建安装程序包有点陌生,我很可能正在尝试做一些不受支持的事情,或者错过了一些简单的事情。
在此先感谢您提供任何解决此问题的建议。
JT.
【问题讨论】:
标签: wix windows-installer custom-action