|
Title:
|
XE8 system.dcu and daylight savings time
|
Author:
|
Bob Swart |
Posted:
|
3/30/2016 12:13:23 PM
(GMT+1)
|
Content:
|
Yesterday, I started Delphi XE8 and compiled a project, or at least I tried, because I got the message "Fatal Error F1027 Unit not found: System.dcu or binary equivalent (.dcu)". Delphi 10 Seattle continued to work just fine, and the Library Path was still correct, so initially I had no idea what was going on.
Until I looked at the System.dcu file in the Embarcadero\Studio\16.0\lib\win32\release directory. The file had an empty "modified date". Which is a bit strange.
Since I still had Delphi 10 Seattle up and running, I quickly wrote a little program to report the file creation time, last modified time and last access time. And it appeared that almost a dozen files in the lib\win32\release directory had an empty (1899) last modified time. Most likely leading to the aforementioned compiler error.
Could this be the result of the December 2015 XE8 Subscriber Update that I recently ran? Probably not, since I had used XE8 several times since then. But then I remembered that last Sunday (at least in my part of Europe), we entered the Daylight Savings Time period. Losing one hour of sleep, and possibly a bit more than that if I hadn't figured out a way to solve it...
Other targets (like Win64) also suffered from the same problem, so again I used Delphi 10 Seattle to write a unit to recursively parse the 16.0\lib directories, looking for files with a creation date later than the last modified date, and fixing it by setting the last modified date to the creation date (at least that seems to work).
I must add that I'm running Windows Server 2008, and have not installed Delphi XE8 on Windows 10 (which is were Delphi 10 is running happily), so maybe it's just me. But if you also have troubles compiling something with XE8 since you entered daylight savings time, perhaps you face the same issue.
You can download the source code for my little FiXE8 tool but please nNote that my "fix" can only be used at your own risk. I noticed that the IDE would give me an Access Violation (read of 00000000) when I first restarted Delphi XE8. But it has been working without problems ever since. So make a backup first, and see if this can be a little help.
|
Back |
|