Monday, March 11, 2013

More nasty bugs related to Delphi packages

The problem
My Delphi XE started to act strange lately. I have unit Unit2.pas that uses 'FormatBytes' declared in Unit1.pas. When I try to compile Unit2 Delphi says that it cannot find FormatBytes. But FormatBytes is there, in Unit1 !!

Unit1 belongs to Package1 and Unit2 to Package2 (Package2 depends on Package1).

Even more strange: if I delete Unit1 (pas and dcu) Delphi doesn't complain that it cannot find the unit! Its like Unit1 has been cached somewhere. However, if I try to open Unit1, obviously it cannot be found and Delphi popups a OpenDialog to let me show there Unit1 is located.

I know there is already a bug in the caching system for VCL. I guess this is a similar bug.


Solution: I deleted all files related to all my packages:
  • DCP
  • BPL
  • DCU
  • DSK
  • paths from 'Library'
Then I rebuilt everything. Now everything compiles smoothly without warnings and errors. 
(Note: Initially I tried deleting files specified above except  Dproj and paths and it didn't worked)

No comments:

Post a Comment