我在安装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 尝试了以下解决方案,但仍然存在相同的文件锁定问题:
我将尝试从头开始重新安装Windows并在Windows之前安装Delphi 更新以查看更新是否真的是原因。我现在的解决方法是在启动Delphi之前重命名EditorLineEnds.ttr。
答案 0 :(得分:42)
我知道有三种解决方案:
注意:Microsoft在几天后撤回了此修复程序,并在2014-08-27发布了新的KB2984615。不幸的是,这并没有解决我的问题。也许首先卸载KB2982791然后安装KB2984615可能会有效,但我还没试过。
我写了a simple program,为我解决了这个问题:
它使用FindFirstChangeNotification / FindNextChangeNotification并检查该文件是否存在,如果是,则将其移动到%temp%中的唯一子目录。
源代码可用from sourceforge。
答案 1 :(得分: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
运行CBuilder将参数更改为 -pCBuilder 。也许最好的解决方法是创建bds.exe替换工具,del / move * .ttr文件,运行并通过原始bds_original.exe文件的cmd参数。这应该启用* .dpr双击重启。或者使用BdsLauncher.exe,我认为它是regedit链接到* .dpr扩展名。然后进程列表有bds.exe名称。
答案 2 :(得分:3)
以下是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:禁用自动更新的KB 更新后,在您的系统中转到WindowsUpdates。禁用两个KB,所以新的更新不会 再次安装
答案 3 :(得分:3)
对于Delphi 2007,安装IDEFixPack 4.4并添加以下环境变量添加到系统设置:
IDEFixPack.DisabledPatches = DotNet.GlobalizationSearch
重新启动,它应该工作。 我有两个桌面与Win 8.1 Pro,它的工作就像一个魅力!
答案 4 :(得分:2)
只是要指出KB2982791更新已被Microsoft撤销。引用的原因似乎是字体渲染和系统崩溃的问题,而不是这个特定的问题,从表面来看,它似乎确实是Delphi的错误,而且只是因为更新而加剧了。
Microsoft网站上的知识库文章已更新:http://support.microsoft.com/kb/2982791
特别感兴趣的是这些部分:
已知问题2
微软正在调查字体的行为 安装以下任何更新后无法正确呈现:
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的更新汇总 Windows Server 2012状态强>
Microsoft已删除下载链接 正在调查这些问题时这些更新。已知问题3
微软正在研究系统可能采取的行为 在任何一个之后发生0x50 Stop错误消息(bugcheck)崩溃 安装了以下更新:
2982791 MS14-045:描述 内核模式驱动程序的安全更新:2014年8月12日
2970228 更新以支持俄罗斯卢布的新货币符号 视窗
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已删除了这些更新的下载链接 这些问题正在调查中。
答案 5 :(得分:1)
问题似乎是8月13日安装的Windows更新。 我尝试按照上一张海报的建议卸载KB2982791,但这并没有解决问题。 从8月13日卸载所有 Windows更新确实解决了问题。
答案 6 :(得分:1)
如果你在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"
答案 7 :(得分:1)
Windows 7上的CodeGear Delphi 2009也是如此
卸载以下Windows更新2982791 2970228不会有帮助。
之后使用IDE Fix Pack会有所帮助。
答案 8 :(得分:1)
dzEditorLineEndsFix - Cannot create file %Temp%\EditorLineEnd.ttr
这是一个小程序,修复了Windows更新KB2982791与Delphi 2006到2010引入的问题导致错误&#34;无法创建文件%Temp%\ EditorLineEnds.ttr&#34;。 它的工作原理是在创建文件时将其移动到自己唯一的子目录中。
答案 9 :(得分:0)
我使用的是Windows 8,而不是8.1
我关闭了所有Windows更新,昨天我检查了更新并安装了所有安全更新。今天我遇到了同样的问题,但我的笔记本上没有安装上述更新。 我查找了所有这些,但在安装的安全更新之间找不到任何内容:
KB2982791,KB2970228,KB2975719,KB2975331
但是我发现了另一个更新 KB2993651 ,并试图将其卸载,卸载过程暂停。我重置我的comp。现在我无法找到这个更新,问题没有解决。
所以没有找到另一个解决方法并创建了以下脚本,我在打开RAD 2010之前运行。
cd %temp%
ren EditorLineEnds.ttr EditorLineEnds%RANDOM%.ttr
我正在使用%RANDOM%函数,因为第二次使用固定名称时,重命名的文件也将被锁定,并且脚本在重命名时将无法成功。