Delphi 2006-2010错误:"无法创建文件C:\ Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr"

M S*_*kel 54 delphi delphi-2009 delphi-2007 delphi-2006 delphi-2010

我在安装Delphi 2007后遇到错误(编辑:这个问题发生在2006年到2010年的所有Delphi版本中),我无法弄清楚,以前从未见过.重新启动后,我可以毫无问题地启动程序,但如果我要关闭程序并重新启动它会给我以下错误:

"无法创建文件C:\ Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr".该进程无法访问该文件,因为它正由另一个进程使用."

"System"具有此文件的句柄,除非我重新启动,否则无法清除该句柄.我也可以通过在启动程序之前重命名文件来解决问题.

我试过没有运气重新安装程序.

安装版本:CodeGear™Delphi®2007forWin32®R2版本11.0.2902.10471.操作系统:Windows 7 Pro 64bit

更新08/14 13:35 EDT 尝试了以下解决方案,但仍然遇到相同的文件锁定问题:

  1. 将Temp Directory重命名为我知道具有完全安全权限的目录.启动Delphi时,文件将在此目录中创建,但是EditorLineEnds.ttr仍然会被SYSTEM锁定并阻止我重新启动.
  2. 卸载了以下安全更新KB2982791和KB2976897,但这并没有解决问题.我暂时禁止了Windows更新,并尝试卸载8/13的所有安全补丁.
  3. 完全卸载Delphi并重新安装.重新安装所有内容后仍然会出现问题.

我将尝试从头开始重新安装Windows并在Windows更新之前安装Delphi,以查看更新是否真的是原因.我现在的解决方法是在启动Delphi之前重命名EditorLineEnds.ttr.

dum*_*uch 42

我知道有三种解决方案:

  1. 尝试卸载Francisco Caffagni已经提到的Windows安全更新KB2982791.这解决了我的问题(Windows 8.1 + Delphi 2007),但卸载Windows安全更新可能不是一个好主意.
  2. 每次启动Delphi时重命名文件.请参阅下面的简单程序,为您完成.
  3. 使用Andreas Hausladen的IdeFixpack(Delphi 2007版本,请注意版本4.4在Windows 8下不起作用,版本4.3似乎有效),(对于后来的Delphi版本)请注意,如果使用此修复程序,编辑器选项Show Lineends将使用不同的字符因为IDE将不再加载EditorLineEnds.ttr字体.(解决方案1和2没有这个缺点,但是谁还使用那个选项?)

注意:Microsoft在几天后撤回了此修复程序,并在2014-08-27发布了新的KB2984615.不幸的是,这并没有解决我的问题.也许首先卸载KB2982791然后安装KB2984615可能会有效,但我还没有尝试过.

我写了一个简单的程序,为我解决了这个问题:

它使用FindFirstChangeNotification/FindNextChangeNotification并检查该文件是否存在,如果是,则将其移动到%temp%中的唯一子目录.

二进制下载

源代码可从sourceforge获得.


Who*_*ome 6

这是我在Win7-64bit系统上运行Delphi2006的bds_start.bat脚本.我定制了GabeMeister的答案和其中一个链接中找到的类似脚本.我现在可以重新启动DelphiIDE而无需重启.所有ttr临时文件仍然被系统锁定,因此del命令可能无法正常工作.一旦系统重新启动,它们就可以删除.

然而,重新启动Delphi双击myproject.dpr项目文件是不可能的.我害怕为D2006 安装IDEFixPack,因为其中一条评论没有保证它能够正常工作.

bds_start.bat

@REM http://www.danielmagin.de/blog/index.php/2014/08/windows-update-disable-delphi-2007-2010/
@REM http://stackoverflow.com/questions/25295980/delphi-2007-error-cannot-create-file-c-users-admin-appdata-local-temp-editorl
@REM http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/idecommandline_xml.html

@REM del files created by DelphiIDE, may not able to delete but
@REM moving to a new name is possible. Use unique name by timestamp.
del "%temp%\EditorLineEnds*.ttr"
set dt=%date%_%time:~3,2%-%time:~6,2%
rename "%temp%\EditorLineEnds.ttr" "EditorLineEnds_%dt%.ttr"
start "" "C:\Borland\BDS\4.0\Bin\bds.exe" -pDelphi
Run Code Online (Sandbox Code Playgroud)

运行CBuilder将参数更改为-pCBuilder.也许最好的解决方法是创建bds.exe替换工具,del/move*.ttr文件,运行并通过原始bds_original.exe文件的cmd参数.这应该启用*.dpr双击重启.或者使用BdsLauncher.exe,我认为它是regedit链接到*.dpr扩展名.然后进程列表有bds.exe名称.