build.exe fails to start if Registry contains key for non-existing Delphi installation

Issue #10 resolved
Aleksey Timohin created an issue

build.exe fails if Registry contains key for non-existing Delphi installation

Situation: I have a key in registry for Delphi XE3 (created by old FireDAC installation), while Delphi XE3 is not actually installed on my computer.

here is the screenshot of that registry hive 2014-02-24 01_01_04-Registry Editor.png

Failure symptoms: When I start build.exe it stops with error: Project Build.exe raised exception class EArgumentException with message 'Invalid characters in file name'. And it does not show my existing XE5 installations.

EArgumentException happens in BuildEngine.pas on the line 404:

        lBdsDirectory := TPath.GetDirectoryName(lFullBdsFileName);

The problem is that lFullBdsFileName is empty string.

I used the following simple fix to avoid this error:

      if lFullBdsFileName<>'' then
        lBdsDirectory := TPath.GetDirectoryName(lFullBdsFileName);

Comments (6)

  1. Aleksey Timohin reporter

    Easy way to reproduce (assuming that you don't have XE3 installed): create empty key 10.0 in HKEY_CURRENT_USER\Software\Embarcadero\BDS\

    (if XE3 is installed, old key can be renamed temporary to __10.0, and empty 10.0 key could be created)

  2. Stefan Glienke repo owner

    Changed priority because bugs in the Build.exe cannot be classified as blocker unless its impossible to build the framework otherwise.

  3. Log in to comment