Delphi XE8和致命错误F2039 [英] Delphi XE8 and Fatal Error F2039

查看:259
本文介绍了Delphi XE8和致命错误F2039的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用XE8更新1,将Win 7 64位和单个组件添加到否则为空的文件夹中,我得到:
错误:[dcc32致命错误] F2039无法创建输出文件。 \MountTest。

With XE8 update 1, Win 7 64 bit and a single component added to an otherwise empty folder I get: error: [dcc32 Fatal Error] F2039 could not create output file .\Win32\Debug\MountTest.

该测试将在第一次编译并运行良好,但是XE8必须关闭并重新启动才能再次编译。该组件是Mitov Software的量规。
组件供应商说这是一个已知错误,没有修复。如果是这样,那么对我来说,这是一个突破口,项目结束了。

The test will compile and run fine the first time but XE8 has to be shut down and restarted to compile again. The component is a gauge from Mitov Software. The component vendor say's that this is a known bug with no fix. If so its a showstopper and project end'r for me. Is it really the end of the line for Delphi?

这是我解决问题的方法。

This is what I have done to isolate the problem.


  1. 从失败的应用程序开始(不会编译2次) )

  2. 删除所有使用的外部单元

  3. 删除所有对这些单元的引用

  4. 删除所有'Uses'子句

  5. 注释代码,直到编译

  1. Started with a failing application (will not compile a 2ed time)
  2. Remove all external units used
  3. Remove al references to those units
  4. Remove all references in the 'Uses' clause
  5. Comment code until it compiles

每次点击时都应编译运行(没问题)。现在向项目添加一个空白表格。请勿对表单做任何事情,只需将其添加即可。将其添加到uses子句中。

It should compile every time you hit run (no problem).Now add a blank form to the project. Don't do anything to the form just add it. Add it to your uses clause.

每次单击Run时都应编译它。
现在打开空白表格并简单地触摸它,以便需要重新编译它。

Its should compile every time you hit Run. Now open the blank form and simply touch it so that it needs to be recompiled.

当您运行该应用程序时,运行它会失败

When you run the application its back to failing when you run it a second time.

仅在添加表单并触摸表单时,就会发生这种情况。不需要代码。

Notice that happens when you simply add a form and 'touch' it. No code needed.

这个问题不是我的代码有问题-不可能。

This problem is not something wrong with my code - it can't be. Its a bug in the UI - must be.

推荐答案

巧合的是,昨天我只是为了解决这个问题而奋斗,测试了我移植到的某些组件XE8。在我的情况下,输出文件是项目可执行文件。

Coincidentally, I just fought with this issue yesterday testing some components I ported to XE8. The output file in my case is the project executable.

花了几个小时试图弄清楚发生了什么(包括通过重新配置我的AV软件,完全禁用它,将项目移动到其他位置等),我能够通过禁用Castalia来解决问题。如果我在没有Castalia的情况下运行IDE,则不会发生此问题。如果再次启用Castalia,它将再次发生。

After spending several hours trying to figure out what was going on (including efforts to reconfigure my AV software, disabling it entirely, moving the project to a different location, etc.), I was able to solve the problem by disabling Castalia. If I run the IDE without Castalia, the problem does not occur. If I enable Castalia again, it starts happening again.

您可以在如何在XE8中禁用Castalia?

You can find instructions for disabling/enabling Castalia in How can I disable Castalia in XE8?

我正在删除上述内容,因为问题再次出现(停用Castalia)。进一步的调查显示了几件事:

I'm removing the above content because the issue has reappeared (with Castalia disabled). Further investigation shows a couple of things:


  1. 问题似乎与调试器中引发的任何异常有关(即使是代码中处理的代码)。在调试器异常对话框中单击 Break Continue 均可。但是,下一次尝试编译或生成应用程序失败,并显示F2039错误。在Windows资源管理器中删除可执行文件将使其编译并运行一次,然后再次发生该错误。

  1. The problem seems to be related to any sort of exception being raised in the debugger (even those that are handled in the code). Clicking either Break or Continue in the debugger exception dialog works as always. However, the next attempt to compile or build the application fails with the F2039 error. Deleting the executable in Windows Explorer allows compilation and running once, and then the error recurs.

重新启动IDE可以解决此问题,直到发生下一个调试器异常。

Restarting the IDE fixes the issue, until the next debugger exception occurs.

taskkill 或带有 del 的批处理文件都无法在构建前或构建后工作事件。

Neither taskkill or a batch file with del worked in either a pre- or post-build event.

有一个在Embarcadero上对其进行公开QC记录 ,该记录表明该报告已在XE7,XE7.1和XE8中报告,目前是公开内部票。我找不到在基于JIRA的新质量门户中将上述两点中的信息添加到该公开票证中的方法。也许有权访问并且可以访问的人会代表我(或至少添加指向此帖子的链接)。

There is an open QC entry for it at Embarcadero which indicates that it was reported in XE7, XE7.1, and XE8, and is currently an open internal ticket. I can't find a way to add the information in the two points above to that open ticket in the new JIRA-based Quality Portal. Perhaps someone who has access and can do so will on my behalf (or at least add a link to this post).

它未链接到特定项目。最初的答案(如上所述)与测试应用程序有关,同时将某些组件从早期版本移植到XE8。当问题再次出现给我时,它是在一个完全不相关的全新项目中,没有使用任何非标准组件。

It's not linked to a specific project. The original answer (as mentioned above) was related to a test app while porting some components to XE8 from an earlier version. When the problem reappeared for me, it was in a brand new project, totally unrelated, that does not use any non-standard components.

(我以前可以使用EMBT QC,并且有一些未完成的票证。这些帐户似乎尚未迁移到新的QP,并且我无法在该帐户下找到任何票证。)

(I previously had access to EMBT QC, and had a few open tickets. The accounts appear to have not migrated to the new QP, and I can't locate any tickets there under my account.)

这篇关于Delphi XE8和致命错误F2039的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆