PDA

View Full Version : ICE03 Error with COM DLL



LanceRas
05-23-2007, 09:46 PM
BasicMSI project bringing in a COM DLL. (Xceed Software's XCeedZip DLL).

Without making any changes to the component setting after adding the file to the project, I get, during Vista Validation an error and several warnings.

Error:
ICE03: "Invalid format string; Table: Registry, Column: Value, Key(s): _98016EBFF333A8DF8ADA9F43B7200E9

Warnings:
4 ICE33 Warings of which one contains the above string to which typelib HELPDIR should be registered via the Typelib table.

Expectation:
From what I understand from prior postings, the warning should be ignored, as I should allow the type library in the COM dll be registered using registry.
What I should not see in an Error.

MichaelU
05-24-2007, 10:42 AM
Agreed; the warnings are a matter of unsynchronization between Microsoft's recommendations and the actual implementation of their ICEs. The error is somewhat worrisome. Could you post the full contents of that row of the registry table, especially the Value column? You may have to open your build MSI in direct-edit mode in order to find it.

LanceRas
05-24-2007, 12:55 PM
Well....

I would post the contents of the Registry Table where it is marked as where the error is in the Direct Editor.......................... However it is empty.

Lance.






================= Logging started at 5/24/2007 10:48:46 AM ==================
Created release folders
AdminExecuteSequence table successfully built
AdminUISequence table successfully built
AdvtExecuteSequence table successfully built
AdvtUISequence table successfully built
InstallExecuteSequence table successfully built
InstallUISequence table successfully built
Directory table successfully built
Feature table successfully built
FeatureComponents table successfully built
Component table successfully built
Loading File table
File [INSTALLDIR]Btm2007.exe is already signed.
Started signing Btm2007.exe ...
Successfully signed and timestamped: Btm2007.exe

File [CommonFilesFolder]CDE Software Shared\Remote\cderemote.exe is already signed.
Started signing cderemote.exe ...
Successfully signed and timestamped: cderemote.exe

File [CommonFilesFolder]CDE Software Shared\Support Files\XceedZip50.dll is already signed.
Started signing XceedZip50.dll ...
Successfully signed and timestamped: XceedZip50.dll

File [CommonFilesFolder]CDE Software Shared\Support Files\CDECOMA.dll is already signed.
Started signing CDECOMA.dll ...
Successfully signed and timestamped: CDECOMA.dll

Building File table
File table successfully built
Class table successfully built
Extension table successfully built
ODBCDataSource table successfully built
ODBCDriver table successfully built
ISSQLScriptFile table successfully built
ISSQLScriptReplace table successfully built
ISSQLConnectionScript table successfully built
ISSQLConnection table successfully built
ISSQLConnectionDBServer table successfully built
ISSQLRequirement table successfully built
ISPalmApp table successfully built
ISPalmAppFile table successfully built
ISComPlusProxy table successfully built
ISComPlusApplication table successfully built
ISComCatalogCollection table successfully built
ISComCatalogCollectionObjects table successfully built
ISComCatalogObject table successfully built
ISComCatalogAttribute table successfully built
ISComPlusApplicationDLL table successfully built
ISComPlusServerFile table successfully built
ISComPlusProxyFile table successfully built
ISComPlusServerDepFile table successfully built
ISComPlusProxyDepFile table successfully built
ISXmlFile table successfully built
ISXmlElement table successfully built
ISXmlElementAttrib table successfully built
ActionText table successfully built
AppSearch table successfully built
BindImage table successfully built
CCPSearch table successfully built
Condition table successfully built
AppId table successfully built
Property table successfully built
BBControl table successfully built
Billboard table successfully built
Binary table successfully built
CompLocator table successfully built
Complus table successfully built
ControlCondition table successfully built
ControlEvent table successfully built
CreateFolder table successfully built
CustomAction table successfully built
Error table successfully built
DrLocator table successfully built
DuplicateFile table successfully built
Environment table successfully built
EventMapping table successfully built
FileSFPCatalog table successfully built
Font table successfully built
IniFile table successfully built
IniLocator table successfully built
ISCEApp table successfully built
ISCEDir table successfully built
ISCEFileExt table successfully built
ISCEInstall table successfully built
ISCEOtherAppCABs table successfully built
ISCERegistry table successfully built
ISCESetupFile table successfully built
ISCEShtCut table successfully built
ProgId table successfully built
ISComponentExtended table successfully built
ISCustomActionReference table successfully built
ISDRMFile table successfully built
ISFileManifests table successfully built
ISIISAppPool table successfully built
ISIISCommon table successfully built
ISIISMetaData table successfully built
ISIISWebServiceExtension table successfully built
ISObjectProperty table successfully built
IsolatedComponent table successfully built
ISSelfReg table successfully built
ISSQLDBMetaData table successfully built
ISSQLScriptError table successfully built
ISVRoot table successfully built
ISVRootAppMaps table successfully built
Verb table successfully built
ISWebSite table successfully built
ISXmlLocator table successfully built
LaunchCondition table successfully built
LockPermissions table successfully built
MIME table successfully built
MoveFile table successfully built
MsiAssembly table successfully built
MsiAssemblyName table successfully built
MsiDigitalCertificate table successfully built
MsiDigitalSignature table successfully built
MsiDriverPackages table successfully built
MsiPatchCertificate table successfully built
ODBCAttribute table successfully built
ODBCSourceAttribute table successfully built
ODBCTranslator table successfully built
PatchPackage table successfully built
PublishComponent table successfully built
Registry table successfully built
RegLocator table successfully built
RemoveFile table successfully built
RemoveIniFile table successfully built
RemoveRegistry table successfully built
ReserveCost table successfully built
SelfReg table successfully built
ServiceControl table successfully built
ServiceInstall table successfully built
SFPCatalog table successfully built
Shortcut table successfully built
Signature table successfully built
TextStyle table successfully built
TypeLib table successfully built
UIText table successfully built
Upgrade table successfully built
ISVirtualFile table successfully built
ISVirtualRegistry table successfully built
ISVirtualDirectory table successfully built
ISVirtualShortcut table successfully built
ISVirtualPackage table successfully built
ISVirtualRelease table successfully built
_Validation table successfully built
Searching project for extract-at-build components...
Extracting COM data from 1 component(s)
New ProgId XceedSoftware.XceedCompression dynamically acquired for component XceedZip50.dll1
New ProgId XceedSoftware.XceedCompression.5 dynamically acquired for component XceedZip50.dll1
New ProgId XceedSoftware.XceedZip dynamically acquired for component XceedZip50.dll1
New ProgId XceedSoftware.XceedZip.5 dynamically acquired for component XceedZip50.dll1
New Class {4C836512-BB70-11D2-A5A7-00105A9C91C6} dynamically acquired for component XceedZip50.dll1
New Class {DB797690-40E0-11D2-9BD5-0060082AE372} dynamically acquired for component XceedZip50.dll1
New Registry Entries (111) dynamically acquired for component XceedZip50.dll1
Validating Custom Action sequencing
Embedding manifest SetupExe.Invoker.manifest into setup.exe
Dialog AdminChangeFolder for language English (United States) built
Dialog AdminNetworkLocation for language English (United States) built
Dialog AdminWelcome for language English (United States) built
Dialog CancelSetup for language English (United States) built
Dialog CustomSetup for language English (United States) built
Dialog CustomSetupTips for language English (United States) built
Dialog CustomerInformation for language English (United States) built
Dialog DatabaseFolder for language English (United States) built
Dialog DestinationFolder for language English (United States) built
Dialog DiskSpaceRequirements for language English (United States) built
Dialog FilesInUse for language English (United States) built
Dialog InstallChangeFolder for language English (United States) built
Dialog InstallWelcome for language English (United States) built
Dialog LicenseAgreement for language English (United States) built
Dialog MaintenanceType for language English (United States) built
Dialog MaintenanceWelcome for language English (United States) built
Dialog MsiRMFilesInUse for language English (United States) built
Dialog OutOfSpace for language English (United States) built
Dialog PatchWelcome for language English (United States) built
Dialog ReadyToInstall for language English (United States) built
Dialog ReadyToRemove for language English (United States) built
Dialog SetupCompleteError for language English (United States) built
Dialog SetupCompleteSuccess for language English (United States) built
Dialog SetupError for language English (United States) built
Dialog SetupInitialization for language English (United States) built
Dialog SetupInterrupted for language English (United States) built
Dialog SetupProgress for language English (United States) built
Dialog SetupResume for language English (United States) built
Dialog SetupType for language English (United States) built
Dialog SplashBitmap for language English (United States) built
Resolving strings...
Language English (United States) built
Building CAB files...
Data1.cab built
Files built
Media table successfully built
Started signing certificate.msi ...
Successfully signed and timestamped: certificate.msi

Performing Upgrading and Patching Validation
Validating against ISVista.cub...
ISDEV : error ICE03: Invalid format string; Table: Registry, Column: Value, Key(s): _97016EBFF333A8DF89ADA9F43B7200E9 Registry Value _97016EBFF333A8DF89ADA9F43B7200E9
ISDEV : warning ICE33: Reg key _97016EBFF333A8DF89ADA9F43B7200E9 is used in an unsupported way. Typelib HELPDIR should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _97016EBFF333A8DF89ADA9F43B7200E9
ISDEV : warning ICE33: Reg key _58D4D1F7719728471803E00DF8EB128A is used in an unsupported way. Typelib should be registered via the Typelib table -- this key is automatically written during typelib registration. Registry Registry _58D4D1F7719728471803E00DF8EB128A
ISDEV : warning ICE33: Reg key _CB74022EB7A9431594D4BEB62CAE86C8 is used in an unsupported way. Typelib should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _CB74022EB7A9431594D4BEB62CAE86C8
ISDEV : warning ICE33: Reg key _17D2DC1F17FA775E026F4F1C559B7554 is used in an unsupported way. Typelib should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _17D2DC1F17FA775E026F4F1C559B7554
ISDEV : warning ICE45: Row 'ReadyToInstall.InstallNow' in table 'Control' has bits set in the 'Attributes' column that are reserved. They should be 0 to ensure compatability with future installer versions. Control Attributes ReadyToInstall InstallNow
ISDEV : warning ICE45: Row 'ReadyToRemove.RemoveNow' in table 'Control' has bits set in the 'Attributes' column that are reserved. They should be 0 to ensure compatability with future installer versions. Control Attributes ReadyToRemove RemoveNow
ISDEV : warning ICE81: MsiDigitalSignature Table does not reference any of the records in MsiDigitalCertificate table. MsiDigitalCertificate DigitalCertificate
ISDEV : error ISICE10: Custom action IS_LAUNCH_MY_PROGRAM_PLEASE of type 210 is not documented in table ISCustomActionReference CustomAction Action IS_LAUNCH_MY_PROGRAM_PLEASE
ISDEV : error ISBP19: File CDECOMA.dll in Component CDECOMA.dll imports deprecated API kernel32.dll!lstrcpynA File File cdecoma.dll
ISDEV : error ISBP19: File CDECOMA.dll in Component CDECOMA.dll imports deprecated API user32.dll!OemToCharA
ISDEV : error ISBP19: File CDECOMA.dll in Component CDECOMA.dll imports deprecated API user32.dll!CharToOemA
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API KERNEL32.dll!lstrcpynA File File xceedzip50.dll
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API USER32.dll!CharToOemA
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API USER32.dll!OemToCharA
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API USER32.dll!wsprintfW
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API USER32.dll!wsprintfA
Completed validation against ISVista.cub
Started signing BTM2007COMPLETE.msi ...
Successfully signed and timestamped: BTM2007COMPLETE.msi

Setup.exe created
Started signing BTM2007COMPLETE.exe ...
Successfully signed and timestamped: BTM2007COMPLETE.exe

Automatic update notification disabled
CDROM\CDROM - 10 error(s), 7 warning(s)
================= Logging stopped at 5/24/2007 10:51:23 AM ==================
Log file has been created: <file:N:\BTM2007\CDROM\CDROM\LogFiles\5-24-2007 10-48-46 AM.txt>

MichaelU
05-24-2007, 01:11 PM
Right - COM Extract at Build entries will not be present in your ISM. You can open your built MSI file to see them, or perform static COM extraction. The advantage of the latter is you can then edit it to fix whatever the problem is.

Another option - you could use the RegSpyUI tool on the DLL to show what COM extraction should retrieve. The downside is there won't be any attachment to that generated key column, so you'll have to find the relevant value by inspection.

LanceRas
05-24-2007, 01:44 PM
Ok. I did the Extract COM Data for Key File.

That brought things into the Registry table.

It looks lik I have 4 offenders, but I'm not sure where to begin.

ISDEV : warning ICE33: Reg key _ISComExtract_Registry109 is used in an unsupported way. Typelib HELPDIR should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _ISComExtract_Registry109
ISDEV : warning ICE33: Reg key _ISComExtract_Registry108 is used in an unsupported way. Typelib should be registered via the Typelib table -- this key is automatically written during typelib registration. Registry Registry _ISComExtract_Registry108
ISDEV : warning ICE33: Reg key _ISComExtract_Registry107 is used in an unsupported way. Typelib should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _ISComExtract_Registry107
ISDEV : warning ICE33: Reg key _ISComExtract_Registry106 is used in an unsupported way. Typelib should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _ISComExtract_Registry106


Key | Name | Value

TypeLib\{DB797681-40E0-11D2-9BD5-0060082AE372}\5.3 | | Xceed Zip Compression Library v6.0
TypeLib\{DB797681-40E0-11D2-9BD5-0060082AE372}\5.3\0\win32 | | [!xceedzip50.dll]
TypeLib\{DB797681-40E0-11D2-9BD5-0060082AE372}\5.3\FLAGS | | 0
TypeLib\{DB797681-40E0-11D2-9BD5-0060082AE372}\5.3\HELPDIR | | [$XceedZip50.dll1]\

bryanwolf
05-24-2007, 02:30 PM
Are you still recieving the ICE03 errors though?

The Ice33's would be expected as you noted above since they're typelib table entries in the registry table; however, per Microsoft that's the way to do it now.

Could you confirm the ICE03 errors do/do not exist?

LanceRas
05-24-2007, 02:58 PM
Here's the current logged errors/warnings.

I'll add a few more COM dll's and test.

ISDEV : warning ICE33: Reg key _ISComExtract_Registry109 is used in an unsupported way. Typelib HELPDIR should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _ISComExtract_Registry109
ISDEV : warning ICE33: Reg key _ISComExtract_Registry108 is used in an unsupported way. Typelib should be registered via the Typelib table -- this key is automatically written during typelib registration. Registry Registry _ISComExtract_Registry108
ISDEV : warning ICE33: Reg key _ISComExtract_Registry107 is used in an unsupported way. Typelib should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _ISComExtract_Registry107
ISDEV : warning ICE33: Reg key _ISComExtract_Registry106 is used in an unsupported way. Typelib should be registered via the Typelib table. This entry may overwrite a value created through that table. Registry Registry _ISComExtract_Registry106
ISDEV : warning ICE45: Row 'ReadyToInstall.InstallNow' in table 'Control' has bits set in the 'Attributes' column that are reserved. They should be 0 to ensure compatability with future installer versions. Control Attributes ReadyToInstall InstallNow
ISDEV : warning ICE45: Row 'ReadyToRemove.RemoveNow' in table 'Control' has bits set in the 'Attributes' column that are reserved. They should be 0 to ensure compatability with future installer versions. Control Attributes ReadyToRemove RemoveNow
ISDEV : warning ICE81: MsiDigitalSignature Table does not reference any of the records in MsiDigitalCertificate table. MsiDigitalCertificate DigitalCertificate
ISDEV : error ISBP19: File CDECOMA.dll in Component CDECOMA.dll imports deprecated API kernel32.dll!lstrcpynA File File cdecoma.dll
ISDEV : error ISBP19: File CDECOMA.dll in Component CDECOMA.dll imports deprecated API user32.dll!OemToCharA
ISDEV : error ISBP19: File CDECOMA.dll in Component CDECOMA.dll imports deprecated API user32.dll!CharToOemA
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API KERNEL32.dll!lstrcpynA File File xceedzip50.dll
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API USER32.dll!CharToOemA
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API USER32.dll!OemToCharA
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API USER32.dll!wsprintfW
ISDEV : error ISBP19: File XceedZip50.dll in Component XceedZip50.dll1 imports deprecated API USER32.dll!wsprintfA

LanceRas
05-24-2007, 03:14 PM
Ok. Doing that brought in a boat load of ICE33 warnings, which is find under the circumstances.

No ICE03 errors, which is good.

Lance

sks2004
07-15-2007, 10:07 PM
I receive numerous ICE03 errors... almost all are referring to Crystal XI components within the XI merge modules. Although some are for my components, string length exceeded in the Text field... is this OK?

Things have been OK with my installations for the past 2.5 years, but now with Vista installs I'm having some serious issues with auto-repair or reinstall corrupting the msi database (PackageName = '', etc...). I have upgraded this project (a very complex project) from 10 to 10.5, to 11, to 12, and then to 2008.

Any thoughts?
Thanks

bryanwolf
07-16-2007, 12:06 PM
Does removing the Crystal Components resolve your issue perhaps? It might just be that you need new merge modules to work with Vista :)