Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 德尔福2006-2010错误:“引用;无法创建文件C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr";_Delphi_Delphi 2010_Delphi 2009_Delphi 2007_Delphi 2006 - Fatal编程技术网

Delphi 德尔福2006-2010错误:“引用;无法创建文件C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr";

Delphi 德尔福2006-2010错误:“引用;无法创建文件C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr";,delphi,delphi-2010,delphi-2009,delphi-2007,delphi-2006,Delphi,Delphi 2010,Delphi 2009,Delphi 2007,Delphi 2006,在安装Delphi2007(编辑:这个问题在2006年到2010年的所有Delphi版本中都会发生)之后,我发现了一个错误,我以前从未发现过这个错误。重新启动后,我可以毫无问题地启动程序,但如果我关闭程序并重新启动,则会出现以下错误: “无法创建文件C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr”。该进程无法访问该文件,因为另一进程正在使用该文件。“ “系统”对此文件有一个句柄,除非我重新启动,否则无法清除该句柄。我还可以通过在启动程序之

在安装Delphi2007(编辑:这个问题在2006年到2010年的所有Delphi版本中都会发生)之后,我发现了一个错误,我以前从未发现过这个错误。重新启动后,我可以毫无问题地启动程序,但如果我关闭程序并重新启动,则会出现以下错误:

“无法创建文件C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr”。该进程无法访问该文件,因为另一进程正在使用该文件。“

“系统”对此文件有一个句柄,除非我重新启动,否则无法清除该句柄。我还可以通过在启动程序之前重命名该文件来更正此问题

我尝试重新安装程序,但没有成功

安装版本:CodeGear™ 适用于Win32®R2版本11.0.2902.10471的Delphi®2007。 操作系统:Windows 7 Pro 64位

美国东部时间8月14日13:35更新 尝试了以下解决方案,但仍然存在相同的文件锁定问题:

  • 已将临时目录重命名为我知道具有完全安全权限的目录。启动Delphi时将在此目录中创建文件,但EditorLineEnds.ttr仍会被系统锁定,并阻止我重新启动
  • 卸载了以下安全更新KB2982791和KB2976897,但这并没有解决问题。我已暂时禁止windows更新,并将尝试卸载8/13的所有安全修补程序
  • 完全卸载Delphi并重新安装。重新安装所有内容后问题仍然存在
  • 我将尝试从头重新安装Windows,并在Windows之前安装Delphi
    更新以查看更新是否真的是原因。我目前的解决方法是在启动Delphi之前重命名EditorLineEnds.ttr。

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

    我知道有三种解决方案:

  • 尝试卸载Francisco Caffagni已经提到的Windows安全更新KB2982791。这为我解决了问题(Windows 8.1+Delphi 2007),但卸载Windows安全更新可能不是一个好主意
  • 每次启动Delphi时都要重命名文件。下面是一个简单的程序
  • 使用Andreas Hausladden的IdeFixpack(,注意版本4.4在Windows 8下不起作用,版本4.3似乎起作用),()注意,如果使用此修复程序,编辑器选项Show Lineends将使用不同的字符,因为IDE不再加载EditorLineEnds.ttr字体。(解决方案1和2没有这个缺点,但谁会使用这个选项?)
  • 注意:几天后,Microsoft撤销了此修复程序,并于2014-08-27发布了一个新的KB2984615。不幸的是,这并没有为我解决此问题。可能先卸载KB2982791,然后再安装KB2984615可能会起作用,但我还没有尝试过

    我写道,这为我解决了问题:

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


    源代码可用。

    这里是来自

    引述:

    您可以通过两种方式轻松回滚

    1:创建具有以下行的批处理文件
    wusa/uninstall/kb:2982791
    wusa/uninstall/kb:2970228
    此批处理文件是在windows启动时运行的。但使用“自动更新”,每次都会安装这两个更新

    2:从自动更新中禁用知识库
    更新后转到系统中的WindowsUpdates。禁用这两个KB,以便在新更新时不会禁用 重新安装


    如果您在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"
    
    SET HOUR=%time:~0,2%
    设置dtStamp9=%date:~-4%%日期:~4,2%%日期:~7,2%\u 0%时间:~1,1%%时间:~3,2%%时间:~6,2%
    设置dtStamp24=%date:~4%%date:~4,2%%date:~7,2%\u%time:~0,2%%time:~3,2%%time:~6,2%
    如果“%HOUR:~0,1%”==”(设置dtStamp=%dtStamp9%)其他(设置dtStamp=%dtStamp24%)
    如果存在“C:\Users\\AppData\Local\Temp\EditorLineEnds.ttr”(
    echo“移动编辑器LineEnds.ttr”
    移动“C:\Users\\AppData\Local\Temp\EditorLineEnds.ttr”C:\Users\\AppData\Local\Temp\ExtraEditorLineEnds\%dtStamp%.ttr
    )否则(
    echo“未找到EditorLineEnds.ttr。”
    )
    启动“C:\ProgramFiles(x86)\CodeGear\RAD Studio\6.0\bin\bds.exe”
    
    我只是想指出,KB2982791更新已被微软撤销。引用的原因似乎是字体渲染和系统崩溃问题,而不是这个具体问题,从表面上看,这似乎是Delphi的错误,只是更新加剧了问题

    Microsoft站点上的知识库文章已更新:

    具体而言,这些章节很有意义:

    已知问题2
    微软正在调查字体的行为 安装以下任何更新后无法正确渲染:
    2982791 MS14-045:内核模式的安全更新说明 驾驶员:2014年8月12日
    2970228更新以支持新货币 Windows中的俄罗斯卢布符号
    2975719 2014年8月更新 Windows RT 8.1、Windows 8.1和Windows Server 2012 R2的汇总
    2014年8月2975331日Windows RT、Windows 8和 Windows Server 2012

    状态
    Microsoft已删除到的下载链接 这些更新将在调查这些问题时进行

    @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
    cd %temp%
    ren EditorLineEnds.ttr EditorLineEnds%RANDOM%.ttr