InstallShield Express打包delphi遇到'Internal Error 25001.1615 : RegistrationCosting::CostAllISSelfRegEntries::MsiDatabaseOpenView(hD

项目做完后用InstallShield Express打包,第一次用这个东东,果然出了问题,报了如下错误

'Internal Error 25001.1615 : RegistrationCosting::CostAllISSelfRegEntries::MsiDatabaseOpenView(hDatabase,_T("Select * from ISSelfReg"), hView'

上网一查,还不是我一个人的问题,可惜国内网上都只有提问没有回答,辗转到国外,总算解决了,转贴如下

Abstract: When deploying certain Delphi Merge Modules, and then running the Setup file that is created, you receive that error. This article explains how to work around it.

Problem:


Using InstallShield, I build a setup file which contains the BaseVCL, BaseRTL, and SampleVCL Merge Modules. When I run setup I get:

'Internal Error 25001.1615 : RegistrationCosting::CostAllISSelfRegEntries::MsiDatabaseOpenView(hDatabase,_T("Select * from ISSelfReg"), hView'

followed by:

'Internal Error 25001.6 : RegistrationCosting::CostAllISSelfRegEntries::MsiViewExecute(hView,NULL)'.

I can then continue execution and the application appears to install correctly. What is going on?

 

Answer:


This is because D7 Merge modules include some custom actions that are used to process Self-Registering files. But since there are no self-registering files in the mergemodules, any setup application developed using ISX that includes the D7 mergemodules might throw some run-time errors. Please note that this workaround is not required if your setup application includes any additonal self-registering files.

Workaround - I:
--------------

Open your setup's .msi file in Orca and remove the rows mentioned below.

Go to InstallExecuteSequence table and delete the rows with the following names in the Action column:
ISSelfRegisterFinalize
ISSelfRegisterCosting
ISSelfRegisterFiles
ISUnSelfRegisterFiles


To be able to edit your setup's .msi file, you should build your release as an uncompressed media, ie., set compression to "No" in your release configuration.

If you are not familiar with Orca:

Orca is a utility from Microsoft that enables one to view and modify MSI database tables directly. It's part of the Windows Installer SDK. Please download and install the Windows Installer SDK. Then install Orca by running Orca.msi that is installed as a part of the Windows Installer SDK.

Workaround - II:
---------------

If you are an advanced user and have good working knowledge of MSI and Orca, then you can also edit the Delphi7 mergemodules (ie., .msm files) directly in Orca to remove the following actions from ModuleInstallExecuteSequence table.
ISSelfRegisterFinalize
ISSelfRegisterCosting
ISSelfRegisterFiles
ISUnSelfRegisterFiles


NOTE: If you choose the 2nd workaround, it is highly recommended that you take a backup of all Borland Delphi7 Mergemodules before editing them in Orca.

 

很简单得英语,不用翻译了吧,Orca. 国内有汉化版,还是比较容易弄到得 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值