【发布时间】:2016-12-30 08:40:24
【问题描述】:
我最近完成了我的第一个 Wix Intaller,但是我遇到了一个问题,我的 MSI 文件只能在我的计算机上运行,我正在生成一个嵌入式 CAB 文件。我正在安装程序中注册一个 DLL。我收到错误消息:“此 Windows 安装程序包存在问题。作为安装程序的一部分运行的程序未按预期完成。”这就是为什么我认为 DLL 是问题的一部分。我在下面有一些代码 sn-ps,如果您需要查看更多信息,请告诉我,谢谢!
DLL 安装的自定义操作:
<Product Id="*" UpgradeCode="12345678-1234-1234-1234-111111111111"
Name="FP7000 Camera App" Version="1.0" Manufacturer="Stryker Corp" Language="1033">
<Package InstallerVersion="200" Compressed="yes" Comments="Windows Installer Package"/>
<Media Id="1" Cabinet="product.cab" EmbedCab="no"/>
<!--Installing/Uninstalling Supporting Programs and DLLs-->
<CustomAction Id="RegisterFP7000"
Directory="dirCF50D58BC65CC93005501980AACC3EDD"
ExeCommand='C:\Windows\system32\regsvr32.exe /s "C:\Projects\Stryker\Install Files\DLLs\FP7000-Camera.dll"'>
</CustomAction>
<CustomAction Id="UnregisterFP7000"
Directory="dirCF50D58BC65CC93005501980AACC3EDD"
ExeCommand='C:\Windows\system32\regsvr32.exe /s /u "C:\Projects\Stryker\Install Files\DLLs\FP7000-Camera.dll"'>
</CustomAction>
<CustomAction Id="InstallSDK"
Directory="dirCF50D58BC65CC93005501980AACC3EDD"
ExeCommand='C:\Windows\system32\msiexec /i "C:\Projects\Stryker\Install Files\Included Apps\Intel_Media_SDK_2016_R2.msi" /quiet'
Execute='deferred'
Impersonate='no'
Return='asyncNoWait'>
</CustomAction>
<CustomAction Id="UninstallSDK"
Directory="dirCF50D58BC65CC93005501980AACC3EDD"
ExeCommand='MsiExec.exe /X{C39967EA-A3DB-4B49-9BCA-74E4D0007533}'
Execute='deferred'
Impersonate='no'
Return='asyncNoWait'>
</CustomAction>
安装顺序:
<InstallExecuteSequence>
<Custom Action="RegisterFP7000" After="InstallFinalize">NOT Installed</Custom>
<Custom Action="UnregisterFP7000" Before="InstallFinalize">REMOVE="ALL"</Custom>
<Custom Action="InstallSDK" After="InstallFiles">NOT Installed</Custom>
<Custom Action="UninstallSDK" Before="InstallFinalize">REMOVE="ALL"</Custom>
</InstallExecuteSequence>
【问题讨论】:
-
一般来说,您可以通过在详细的 MSI 日志中查找与错误相关的部分来询问有关 Windows Installer 错误的更好问题。然后您就可以确定失败的原因,并可以提出更尖锐的问题。
-
记住这一点!
标签: xml windows wix windows-installer installation