msi 抱怨无法运行 DLL 错误 1723(1157)
我正在创建一个示例 msi。我正在使用 C++ 自定义操作。我可以在 Windows 7 32 位上安装 msi。但我无法在 Windows Server 2008 64 位上安装它。
以下是代码:
<Binary Id="BinaryId.dll"
SourceFile="Test.dll" />
<CustomAction Id="TestFunc" BinaryKey="BinaryId" DllEntry="TestFunc"
Execute="immediate" Return="check" />
<InstallExecuteSequence>
<Custom Action="TestFunc" Before="InstallInitialize" Overridable="yes">1</Custom>
</InstallExecuteSequence>
我从 msi 日志中收到以下错误:
调用远程自定义操作。 DLL:C:\ Windows \ Installer \ MSI84EB.tmp,入口点:MSI(s)(8C:30)[01:28:17:180]:执行操作:TestFunc MSI (s) (8C:30) [01:28:17:180]: 注意: 1: 2205 2: 3: ActionText 动作开始 1:28:17:TestFunc。 MSI (s) (8C:A0) [01:28:17:184]:调用远程自定义操作。 DLL:C:\ Windows \ Installer \ MSI8E90.tmp,入口点:TestFunc CustomAction TestFunc 返回实际错误代码 1157(请注意,如果翻译发生在沙箱内,这可能不是 100% 准确) MSI(s)(8C:30)[01:28:17:218]:注意:1:1723 2:TestFunc3:TestFunc4:C:\ Windows \ Installer \ MSI8E90.tmp MSI (s) (8C:30) [01:28:17:218]: 注意: 1: 2205 2: 3: 错误 MSI(s)(8C:30)[01:28:17:218]:注意:1:2228 2:3:错误4:从“错误”中选择“消息”,其中“错误”= 1723 MSI (c) (1C:74) [01:28:17:224]:字体已创建。字符集:Req=0,Ret=0,字体:Req=MS Shell Dlg,Ret=MS Shell Dlg 错误 1723。此 Windows Installer 程序包有问题。无法运行完成此安装所需的 DLL。请联系您的支持人员或软件包供应商。操作 TestFunc,条目:TestFunc,库:C:\Windows\Installer\MSI8E90.tmp MSI(s)(8C:30)[01:28:18:451]:注意:1:2205 2:3:错误 MSI (s) (8C:30) [01:28:18:451]:注意:1:2228 2:3:错误 4:从“错误”中选择“消息”,其中“错误”= 1709 MSI (s) (8C:30) [01:28:18:451]:产品:TestCa - 错误 1723。此 Windows Installer 程序包存在问题。无法运行完成此安装所需的 DLL。请联系您的支持人员或软件包供应商。操作 TestFunc,条目:TestFunc,库:C:\Windows\Installer\MSI8E90.tmp
非常感谢您提出的宝贵建议和帮助,这将有助于解决此问题。 :)
I am creating a sample msi. I am using a C++ custom action. I am able to install the msi on Windows 7 32bit. But I am unable to install it on Windows Server 2008 64bit.
The following is the code:
<Binary Id="BinaryId.dll"
SourceFile="Test.dll" />
<CustomAction Id="TestFunc" BinaryKey="BinaryId" DllEntry="TestFunc"
Execute="immediate" Return="check" />
<InstallExecuteSequence>
<Custom Action="TestFunc" Before="InstallInitialize" Overridable="yes">1</Custom>
</InstallExecuteSequence>
I am getting the following error from the msi logs:
Invoking remote custom action. DLL: C:\Windows\Installer\MSI84EB.tmp, Entrypoint: MSI (s) (8C:30) [01:28:17:180]: Doing action: TestFunc MSI (s) (8C:30) [01:28:17:180]: Note: 1: 2205 2: 3: ActionText Action start 1:28:17: TestFunc. MSI (s) (8C:A0) [01:28:17:184]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI8E90.tmp, Entrypoint: TestFunc CustomAction TestFunc returned actual error code 1157 (note this may not be 100% accurate if translation happened inside sandbox) MSI (s) (8C:30) [01:28:17:218]: Note: 1: 1723 2: TestFunc3: TestFunc4: C:\Windows\Installer\MSI8E90.tmp MSI (s) (8C:30) [01:28:17:218]: Note: 1: 2205 2: 3: Error MSI (s) (8C:30) [01:28:17:218]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1723 MSI (c) (1C:74) [01:28:17:224]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action TestFunc, entry: TestFunc, library: C:\Windows\Installer\MSI8E90.tmp MSI (s) (8C:30) [01:28:18:451]: Note: 1: 2205 2: 3: Error MSI (s) (8C:30) [01:28:18:451]: Note: 1: 2228 2: 3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 MSI (s) (8C:30) [01:28:18:451]: Product: TestCa -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action TestFunc, entry: TestFunc, library: C:\Windows\Installer\MSI8E90.tmp
Thanks a lot for your valuable suggestions and help that would lead to resolve this issue. :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看看您正在使用什么自定义操作方法 TestFunc。 1157错误意味着:
因此,您可能使用的某些库在 Windows Server 2008 64 位上不可用,但在 Windows 7 32 位上可用。
Have a look at what you are using the custom action method TestFunc. 1157 error means that:
So you might be using some library that is not available on Windows Server 2008 64bit but it is available on Windows 7 32bit.
在托管 .Net 代码中编写自定义操作并不容易,并且需要手动操作项目文件。如果您可以轻松地用 VB Script、JavaScript 或 C++ 编写相同的代码,我建议您采用该路径。
这是我使用的教程:在没有投票的情况下为用托管代码编写的 WIX 创建自定义操作 。
Writing custom actions in managed .Net code is not easy and involves manually manipulating the project files. If you can easily write the same code in VB Script, JavaScript or C++, I'd recommend taking that path instead.
Here's the tutorial I used: Creating Custom Action for WIX Written in Managed Code without Votive.