InstallShield Express打包delphi遇到'Internal Error 25001.1615 : RegistrationCosting::CostAllISSelfRegEntries::MsiDatabaseOpenView(hD
2006-09-12 21:33
861 查看
项目做完后用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. 国内有汉化版,还是比较容易弄到得
'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. 国内有汉化版,还是比较容易弄到得
相关文章推荐
- pod install 错误 .cocoapods/repos `open': No such file or directory
- Win7下Platform Builder6.0出现"fatal error C1033: cannot open program database '' 解决方案
- .net导入Excel数据遇到问题(SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDataso)
- InstallShield Express for delphi制作安装程序定制BDE引擎
- VS2010 + Sql Server Express 2008 R2 如何安装(兼谈错误:The database 'XXX' cannot be opened because it is version 661. This server support
- InstallShield Express制作Delphi数据库安装程序
- Windows node.js npm install express -g Cannot find module 'express'
- 安装BCGControlBar 编译错误解决办法 fatal error C1033: cannot open program database '*:/**/vc60.idb'
- linux编译安装php5.4遇到错误:undefined reference to `libiconv_open'
- 解决sqllite的'unable to open database file'错误
- vc6.0 转 vs2008 时 遇到这样的错误时“BSCMAKE: error BK1506 : cannot open file './Debug/xxx.sbr': No such
- vc6.0 转 vs2008 时 遇到这样的错误时“BSCMAKE: error BK1506 : cannot open file './Debug/ex73View.sbr': No such file or directory”
- Error: "Database 'XXX' is already open and can only have one user at a time"
- Visual studio 2005中调试遇到 EXECUTE permission denied on object 'sp_sdidebug', database 'master', owner 'dbo'
- 从源码安装apache2,遇到错误:cannot install `libaprutil-1.la'
- VMWare遇到“Cannot open the disk 'XXX' or one of the snapshot disks it depends on. reason: failed to ”
- stdafx.cpp(0) : fatal error C1033: cannot open program database ''
- InstallShield Express制作Delphi数据库安装程序
- 使用ACE日志策略时遇到的问题:DLL::open failed for ACE: Error: check log for details Unable to find service 'Logger'
- InstallShield Express 12制作安装包并打包.Net Framework(一)