使用XE8更新1,Win 7 64位和单个组件添加到其他空文件夹我得到: 错误:[dcc32致命错误] F2039无法创建输出文件。\ Win32 \ Debug \ MountTest。
测试将在第一次编译并运行正常,但XE8必须关闭并重新启动才能再次编译。该组件是Mitov Software的仪表。 组件供应商说,这是一个已知错误,没有修复。如果是这样,它的一个showstopper和项目结束对我来说。它真的是Delphi的终结吗?
这就是我为隔离问题所做的工作。
它应该在每次运行时编译(没问题)。现在向项目添加一个空白表单。不要对表单做任何事情只需添加它。将其添加到您的使用条款。
每次点击Run都会编译。 现在打开空白表单并简单地触摸它以便需要重新编译。
当您运行应用程序时,它会在您第二次运行它时失败。
请注意,当您只是添加表单并触摸'它。无需代码。
这个问题对我的代码没有问题 - 它不可能。它是UI中的一个错误 - 必须是。
答案 0 :(得分:7)
巧合的是,我昨天刚试了这个问题,测试了我移植到XE8的一些组件。在我的例子中,输出文件是项目可执行文件。
花了几个小时试图弄清楚发生了什么(包括重新配置我的AV软件,完全禁用它,将项目移动到其他位置等),我能够解决问题通过禁用Castalia。如果我在没有Castalia的情况下运行IDE,则不会出现问题。如果我再次启用Castalia,它会再次开始发生。
您可以在How can I disable Castalia in XE8?
我删除了上述内容,因为问题再次出现(禁用了Castalia)。进一步调查显示了几件事:
问题似乎与调试器中引发的任何类型的异常有关(即使是在代码中处理的异常)。在调试器例外对话框中单击中断或继续将一如既往地工作。但是,下一次编译或构建应用程序的尝试因F2039错误而失败。在Windows资源管理器中删除可执行文件允许编译并运行一次,然后再次出现错误。
重新启动IDE可以解决问题,直到发生下一个调试器异常。
taskkill 或 del 的批处理文件都不适用于构建前或构建后的事件。
Embarcadero有一个open QC entry for it表示它是在XE7,XE7.1和XE8中报告的,目前是一个开放的内部票据。我无法找到一种方法将上面两点中的信息添加到基于JIRA的新质量门户中的开放票证中。也许有权访问并且可以代表我的人(或至少添加此帖子的链接)。
它没有链接到特定项目。原始答案(如上所述)与测试应用程序相关,同时从早期版本将一些组件移植到XE8。当问题再次出现时,它出现在一个完全不相关的全新项目中,不使用任何非标准组件。
(我以前可以访问EMBT QC,并且有一些打开的门票。这些帐户似乎没有迁移到新的QP,我找不到我账户下的任何门票。)
答案 1 :(得分:3)
找到它。 我决定从头开始研究我的开发系统并发现问题。
我在原始磁盘上安装了Windows 10
已安装XE8更新1
为XE 8安装了MITIOV Instruments并对其进行了测试。所有工作找到
已安装AsyncPro - 仍在使用
安装了JEDI Jcl - 失败
删除JEDI Jcl - 现在正常工作
Trash JEDI完全 - 一切正常
JEDI Jcl版本3.48中的某些内容导致了这个问题。我可以使用我正在使用的JEDI组件进行编码而不会有太多麻烦,但这是一种耻辱。
答案 2 :(得分:1)
答案 3 :(得分:0)
我在使用XE8的Win 7 Pro 64位上也遇到了这个问题。
删除JCL修复了问题。如果我是一个博彩人,我会仔细看看JCL Debug IDE扩展。
答案 4 :(得分:0)
Guy的..
没有理由升级到Delphi 10.1,因为所有以前的版本都配备了旧版Android SDK。
现在,如何解决这个恼人的问题:
只需找到Android SDK所在的地图即可。 请参阅:工具/选项/ Delphi选项/ SDK管理器/ Android位置
现在以管理员身份运行.. \ sdk \ tools \ android.bat 这将显示Andoid SDK Manager。
接下来是更新到最新的Android SDK和SDK工具。
如果全部完成,则无需升级到Delphi 10.1或“建议”。
重启Delphi并解决问题:=已解决!
顺便说一句: 需要花费一些精力才能找到这里发生的事情,因为Eclipse编译器遇到了与Delphi相同的问题。最后,所有这些都与早期版本的Android SDK中的错误有关,导致adb.exe将文件句柄保留为人质。