Monday, March 4, 2019

Windows 10 insider builds may interfere with Delphi 10 seattle IDE operation

Other IDE versions may be affected. I will update this blog post if I figure it out.

Here's what I think is happening:

1. Something about environment variable handling has changed.

2. The PLATFORM environment variable during an IDE build is somehow wrong.

3. The IDE fails to build some or all projects after this Win10 feature update. (Currently in insider preview).

4. One or more units contains a precompiler directive in the form {$I  filename}.  This is being included at some place where it is causing a problem. For example:

{$I versionchecks.inc}

MANY many third party components (open source and commercial) contain checks of this kind, and some may suck the includes in in a certain standard place, like the very top of the unit.

5. Putting a precompiler include before the Unit name appears to be problematic.

5. Putting a precompiler $I directive after Uses keyword, in the middle of a Uses clause, appears to be problematic.


Insider preview build 1903, build 18348.1 appears affected.

Typical compiler error example:

[dcc32 Fatal Error] XUNIT.pas(408): F2039 Could not create output file '.\dcu\Win32\Debug\XUNIT.dcu'

or

[dcc32 Fatal Error] F1026 File not found: 'YourProject.dpr'

Workaround:  Use the DPROJ option to use MSBUILD to compile externally. 

(Helps if MSBUILD from command line remains unaffected.)

This is not reproducing on all windows machines for me.


4 comments:

  1. Very interested in this. We use Seattle for about 50% of our products. Thanks for keeping us posted.

    ReplyDelete
  2. Have you reported this to Microsoft?

    ReplyDelete
  3. Can be related to removal of short file names support in 19H1.

    ReplyDelete
  4. The PLATFORM variable can be overridden in the IDE Options (Environment Variables page.) Does that help?

    In the past this has been common on HP computers, which set PLATFORM, which causes issues both for us and Visual Studio. If Windows has a bug in one of the insider builds I'd hope / expect it's fixed soon, in order not to break VS at least.

    - David

    ReplyDelete