Delphi 2005/2006 on Windows 8.1 (64 bit)

 Delphi, Windows 8.1  Comments Off on Delphi 2005/2006 on Windows 8.1 (64 bit)
Nov 102013
 

After getting Delphi 2007 to work again I tried to do the same for Delphi 2005 and 2006.

Both versions require the dotNET framework 1.1 which is officially no longer supported on Windows 8 (and 8.1). According to Microsoft, you should contact your independent software vendor (ISV) to have the application upgraded to run on the .NET Framework 3.5 SP1 or later version. Good luck with that.

This is odd, because I could install and use both Delphi versions on Windows 8. The installations broke only when Windows was updated to 8.1, so Microsoft is BSing us here, at least partly.

Reinstalling the “dotNET Framework 1.1 Redistributable Package” failed with some unhelpful error message.

Praise the Google, I found a solution on this site. The .NET Framework Cleanup Tool resolved that problem. After running it, letting it clean up the mess the update apparently made of the dotNET Framework 1.1 and rebooting, I could reinstall it.

Delphi 2005 started again, complained about something regarding “Star Team” which I just ignored / disabled, and behold, the IDE seemed to work.

The same with Delphi 2006. It too complained about “Star Team” which I again just ignored / disabled. It also seemed to work.

Beware: I haven’t done much more than starting both IDEs and compiling GExperts with it. So there might still be issues.

 Posted by on 2013-11-10 at 20:40

Delphi 2007 on Windows 8.1 (64 bit)

 Delphi, Windows 8.1  Comments Off on Delphi 2007 on Windows 8.1 (64 bit)
Nov 102013
 

When I updated to Windows 8.1 my Delphi 2007 installation broke. I could no longer open projects in the IDE and my command line compilation scripts also stopped working. It turned out that some files that were added by the installer to the dotNET framework were missing. In addition there is a known problem with Delphi 2007 on 64 bit Windows (starting with Vista).

This is the error message from the IDE:

MissingBorlandDelphiTargets

followed by this one which is more readable:

MissingBorlandDelphiTargets2
(click on the picture to get it in full size)

This is the error message from my build script:

D:\src\MyProject.dproj(77,11):
error MSB4019: The imported project
"C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Borland.Delphi.Targets"
was not found. Confirm that the path in the  declaration is correct,
and that the file exists on disk.

You might notice that the error messages slightly vary: The IDE complains about a missing file in …\Framework\ while the build script complains about the same file in …\Framework64\. I’ll come back to that later.

So here is what I did to fix it:

  1. I let Windows search for the missing file Borland.Delphi.Targets and it found it in
    C:\ProgramData\{B59CE2E6-B15A-4F23-BD0E-72BF2ADDC3C7}\core\7EFD2DA3\6C948720
    

    (Unfortunately I had already deleted the backup that was created by the Windows Update process.)
    After looking closer into this directory I found 4 files that match Borland.*.Targets. It stands to reason that Delphi will need them all in one way or another so I just copied all 4 of them to

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
    

    After I did that, the IDE no longer complained and also was able to compile the projects.

  2. To get the command line compile working again there are three options:
    • Some older advice I found on the net said to also copy these files to
      C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
      

      I didn’t like that approach because the build process is 32 bit, so why should it involve the 64 bit dotNET framework at all?

    • I found that for some reason the rsvars.bat script contained the line
      @SET FrameworkDir=C:\Windows\Microsoft.NET\Framework64\
      

      followed by

      @SET PATH=%FrameworkDir%%FrameworkVersion%;%FrameworkSDKDir%;%PATH%
      

      The Delphi 2007 installer is probably using some outdated method to find the dotNET framework, which works only on 32 bit Windows. I guess this was fixed in later versions.
      So another option to fix the problem is to change the FrameworkDir to point to …\Framework\ rather than …\Framework64\.
      I didn’t really like that approach either so I went for option 3.

    • I changed my build script to work around this issue:
      [...]
      set OldPath=%PATH%
      call "%DelphiDir%\bin\rsvars.bat"
      SET FrameworkDir=%SystemRoot%\Microsoft.NET\Framework\
      SET PATH=%FrameworkDir%%FrameworkVersion%;%FrameworkSDKDir%;%OldPath%
      

      (The actual build script is a bit more involved because it allows to call several different Delphi versions depending on an environment variable.)

After this change the build script worked again.

I hope this helps others to fix that problem, but I wrote this post mostly to find this information later if I need it again. 😉

Just in case you are wondering:

Delphi 2006 and 2005 don’t work either. They are missing an older version of the dotNET framework which was there in Windows 8 but vanished in the update process. Thanks Microsoft! But there is a solution.

Delphi 7 still works. Delphi 6 has some issue with not finding its registration information that I haven’t looked into yet.

 Posted by on 2013-11-10 at 19:36