tl;dr I did not get Delphi 2006 to install on Windows 10. Delphi 2007 with the right patches seems to work fine, though.
The first thing the Delphi 2006 installer checks is the presence of the .NET Framework 1.1, as parts of the IDE are implemented in .NET (J# I believe).
Unfortunately, according to MSDN Windows 7 is the latest version of Windows that the .NET Framework 1.1 is supported on.
Note that it says, Windows 8.1 isn’t supported either. However, I found several people claiming they got .NET 1.1 to install on Windows 8.1. Figuring that Windows 10 was internally close to Windows 8.1 I set out to install .NET 1.1 on Windows 10.
The installation seemed to be going fine for a while, until eventually the installer ran into an error and everything was rolled back. I checked the application event log and saw a large number of warnings with Source “MsiInstaller” such as this one:
Product: Microsoft .NET Framework 1.1. The application tried to modify a protected Windows registry key \Software\Classes\CLSID\…
Trying to figure it out
Interestingly, the error came pretty late in the installation process, at which point the .NET Framework installation directory C:\Windows\Microsoft.NET\Framework\v1.1.4322\ already contained many or most of the framework’s files.
I figured this might be just enough for Delphi to install and run. So I just killed the installer process as soon as it had hit the error but before it got a chance to begin the rollback. It seems, though, that Windows Installer was prepared for this, as the rollback was executed automatically even after the installer process had been killed.
I imagine Windows Installer has a process in background waiting on the installer process handle to undo its work in case of a crash.
So I thought what if I just suspended the installer? This seemed to do the trick, as no rollback was taking place. Of course, this would not be a permanent solution, but at this point I just wanted to figure out how this thing was operating. With the installer suspended and the rollback staved off, I wanted to compile a Hello World program.
And lo and behold using the command line compiler csc.exe from the aforementioned framework directory worked. Executing the resulting program, however, did not, as it crashed immediately. I guess there is more to the .NET framework than was contained in that directory. Too bad.
At this point, I gave up on running Delphi 2006 on Windows 10. Using the .NET Framework cleanup tool I found recommended in one post seemed to risky to me, given all the caveats regarding the impact on newer .NET frameworks in this MSDN blog post.
Delphi 2007 instead
But lucky for me, I also own a copy of Delphi 2007 which no longer needs .NET 1.1. So until .NET 2.0 isn’t supported anymore, I have an alternative.
And Delphi 2006 and 2007 are binary compatible, hopefully making the switch relatively painless.
Since there had been a number of updates since I bought Delphi 2007, I installed with the CodeGear RAD Studio 2007 ISO (Dec 2007) instead of the original install disk.
That ISO is 4.2GB, but alas I don’t have Delphi 2007 R2, which would entitle me to use this smaller web installer instead.
I also got the Help Update 4 and the unofficial debugger patch based on this helpful response on Stack Overflow.
Not mentioned there is Andreas Hausladen’s IdeFixPack 4.4 for Delphi 2007 on Windows 10 which came highly recommended, so I installed that one, too.
Why do this?
So why did I go through all this trouble of installing a ten year old IDE?
I had been interested in distributed version control for a while, but only read about it and never actually used it. So when I came across a Delphi 2006 project that I had begun in school and improved upon while in college, I wanted to take it as an opportunity to try out GitHub and keep the project there.
With Delphi 2007 installed now, I can hopefully get started on making this project ready to be shared. So far, though, I’ve only registered the personalnexus username on GitHub. Stay tuned.