现在的位置: 首页 > 综合 > 正文

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

2013年09月15日 ⁄ 综合 ⁄ 共 2305字 ⁄ 字号 评论关闭

项目做完后用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. 国内有汉化版,还是比较容易弄到得 

抱歉!评论已关闭.