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

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

"Cannot create file C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr". The process cannont access the file because it is being use by another process."

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

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

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

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

  • 将Temp Directory重命名为我知道具有完全安全权限的目录 . 启动Delphi时,文件将在此目录中创建,但是EditorLineEnds.ttr仍会被SYSTEM锁定并阻止我重新启动 .

  • 卸载了以下安全更新KB2982791和KB2976897,但这并未解决问题 . 我暂时禁止了Windows更新,并尝试卸载8/13的所有安全补丁 .

  • 完全卸载Delphi并重新安装 . 重新安装后,问题仍然存在 .

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

回答(10)

3 years ago

我知道有三种解决方案:

  • 尝试卸载Francisco Caffagni已经提到的Windows安全更新KB2982791 . 这解决了我的问题(Windows 8.1 Delphi 2007),但卸载Windows安全更新可能不是一个好主意 .

  • 每次启动Delphi时重命名文件 . 请参阅下面的简单程序,为您完成 .

  • 使用Andreas Hausladen的IdeFixpack(Delphi 2007 version,请注意 version 4.4 does not work under Windows 8 ,版本4.3似乎有用),(for later Delphi versions)请注意,如果您使用此修复程序,编辑器选项Show Lineends将使用不同的字符,因为IDE赢得了't load the EditorLineEnds.ttr font any more. (Solution 1 and 2 don' t有这个缺点,但是谁使用那个选项呢?)

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

我写了a simple program,它解决了我的问题:

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

Binary download

源代码可用from sourceforge .

3 years ago

这是我在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

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

3 years ago

这是另一种解决方法来自http://www.danielmagin.de/blog/index.php/2014/08/windows-update-disable-delphi-2007-2010/

引用:

您可以通过两种方式轻松回滚1:创建一个批处理文件,其中包含以下行wusa / uninstall / kb:2982791 wusa / uninstall / kb:2970228这个批处理文件是在启动Windows时运行的 . 但是使用自动更新时,每次更新都会安装2:在系统更新后转到WindowsUpdates后,禁用自动更新的KB . 禁用两个KB以及新的更新,它将不会再次安装

3 years ago

对于Delphi 2007,安装IDEFixPack 4.4并添加以下环境变量添加到系统设置:

IDEFixPack.DisabledPatches = DotNet.GlobalizationSearch

重新启动它应该工作 . 我有两个桌面与Win 8.1 Pro,它的工作就像一个魅力!

3 years ago

只是要指出KB2982791更新已被Microsoft撤销 . 引用的原因似乎是字体渲染和系统崩溃的问题,而不是这个特定的问题,从表面来看,它似乎确实是Delphi的错误,并且仅仅是由于更新而加剧 .

Microsoft网站上的知识库文章已更新:http://support.microsoft.com/kb/2982791

特别是这些部分是有意义的:

已知问题2 Microsoft正在研究在任何字体之后无法正确呈现字体的行为安装了以下更新:2982791 MS14-045:内核模式驱动程序安全更新说明:2014年8月12日2970228更新以支持Windows中的俄罗斯卢布新货币符号2975719 2014年8月Windows RT 8.1,Windows更新汇总8.1和Windows Server 2012 R2 2975331 2014年8月Windows RT,Windows 8和Windows Server 2012状态更新汇总状态Microsoft正在调查这些问题时删除了这些更新的下载链接 . 已知问题3 Microsoft正在调查在安装以下任何更新之后系统可能因0x50 Stop错误消息(错误检查)而崩溃的行为:2982791 MS14-045:内核模式驱动程序安全更新说明:2014年8月12日2970228更新以支持Windows中的俄罗斯卢布的新货币符号2975719 2014年8月Windows RT 8.1,Windows 8.1和Windows Server 2012 R2的更新汇总2975331 2014年8月Windows RT,Windows 8和Windows Server 2012的更新汇总此条件可能是持久性的,可能会阻止系统正常启动 . 状态Microsoft正在调查这些问题时删除了这些更新的下载链接 .

3 years ago

问题似乎是8月13日安装的Windows更新 . 我尝试按照上一张海报的建议卸载KB2982791,但这并没有解决问题 . 从8月13日卸载 all Windows更新确实解决了问题 .

3 years ago

如果你在Windows上,我创建了一个批处理文件快捷方式来启动Delphi . 基本上它是一个批处理文件,它将 EditorLineEnds.ttr 的名称更改为当前日期时间,将其移动到另一个子文件夹,然后启动Delphi .

以下是我的批处理脚本的内容:

SET HOUR=%time:~0,2%
SET dtStamp9=%date:~-4%%date:~4,2%%date:~7,2%_0%time:~1,1%%time:~3,2%%time:~6,2% 
SET dtStamp24=%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%

if "%HOUR:~0,1%" == " " (SET dtStamp=%dtStamp9%) else (SET dtStamp=%dtStamp24%)

if exist "C:\Users\<username here>\AppData\Local\Temp\EditorLineEnds.ttr" (
  echo "Moving EditorLineEnds.ttr"
  MOVE "C:\Users\<username here>\AppData\Local\Temp\EditorLineEnds.ttr" "C:\Users\<username here>\AppData\Local\Temp\ExtraEditorLineEnds\%dtStamp%.ttr"
) else (
  echo "EditorLineEnds.ttr was not found."
)
start "C:\Program Files (x86)\CodeGear\RAD Studio\6.0\bin\bds.exe"

3 years ago

对于Windows 7上的CodeGear Delphi 2009也是如此

卸载以下Windows更新2982791 2970228不会有帮助 .

之后使用IDE Fix Pack会有所帮助 .

3 years ago

dzEditorLineEndsFix - Cannot create file %Temp%\EditorLineEnd.ttr

这是一个小程序,修复了Windows更新KB2982791与Delphi 2006到2010引入的问题导致错误“无法创建文件%Temp%\ EditorLineEnds.ttr” . 它的工作原理是在创建文件时将其移动到自己唯一的子目录中 .

3 years ago

我使用的是Windows 8,而不是8.1

我关闭了所有Windows更新,昨天我检查了更新并安装了所有安全更新 . 今天我遇到了同样的问题,但我的笔记本上没有安装上述更新 . 我查找了所有这些,但在安装的安全更新之间找不到任何内容:

KB2982791,KB2970228,KB2975719,KB2975331

但我发现了另一个更新 KB2993651 并尝试卸载它,卸载过程暂停 . 我重置我的comp . 现在我无法找到此更新,问题没有解决 .

因此没有找到另一个解决方法并创建了以下脚本,我在打开RAD 2010之前运行 .

cd %temp%
ren EditorLineEnds.ttr EditorLineEnds%RANDOM%.ttr

我正在使用%RANDOM%函数,因为第二次使用固定名称时,重命名的文件也将被锁定,并且脚本在重命名时不会成功 .