Delphi 2006-2010 ошибка: "не удается создать файл C:UsersAdminAppDataLocalTempEditorLineEnds - ... ttr"

Я получаю сообщение об ошибке после установки Delphi 2007 (Edit: эта проблема возникает во всех версиях Delphi с 2006 по 2010 год), что я не могу понять и никогда не видел раньше. После перезагрузки я могу запустить программу без каких-либо проблем, но если я закрыть программу и запустить снова, это дает мне следующую ошибку:

" не удается создать файл C:UsersAdminAppDataLocalTempEditorLineEnds - ... ttr". Процесс cannont доступ к файлу, потому что это использование другим процессом."

"система" имеет дескриптор этого файла, который не может быть очищен, если я не перезагружусь. Я также могу исправить проблему, переименовав файл перед запуском программы.

Я попытался переустановить программу без успеха.

установленная версия: CodeGear™ Delphi® 2007 для Win32® R2 версии 11.0.2902.10471. Операционная система: Windows 7 Pro 64bit

обновление 08/14 13: 35 EDT Попробовал следующее решения, но все еще имеющие ту же проблему блокировки файлов:

  1. переименованный каталог Temp в каталог, который, как я знаю, имел полные права безопасности. Файлы будут созданы в этом каталоге при запуске Delphi, но EditorLineEnds.ttr все равно будет заблокирован системой и не позволит мне перезапустить.
  2. удалены следующие обновления безопасности KB2982791 и KB2976897, но это не решило проблему. Я подавил обновления Windows, на данный момент и попробую удаление всех исправлений безопасности для 8/13.
  3. полностью удалил Delphi и переустановил. Проблема по-прежнему возникает после повторной установки всего.

Я попробую переустановить Windows с нуля и установить Delphi перед Windows обновления, чтобы увидеть, действительно ли обновления являются причиной. Мое решение сейчас-это просто переименование EditorLineEnds.ttr перед запуском Delphi.

10 ответов


есть три решения этого, о которых я знаю:

  1. Попробуйте удалить Windows security update KB2982791, который уже упоминался Francisco Caffagni. Это решило проблему для меня (Windows 8.1 + Delphi 2007), но это может быть не такая хорошая идея, чтобы удалить обновление для системы безопасности Windows.
  2. переименовывайте файл при каждом запуске Delphi. См. ниже для простой программы, которая делает это за вас.
  3. использовать Андреас Hausladen по (Delphi 2007 версия остерегайтесь, что версия 4.4 не работает под Windows 8, версия 4.3, похоже, работает), (для более поздних версий Delphi) обратите внимание, что параметр редактора Show Lineends будет использовать другой символ, если вы используете это исправление, потому что IDE не будет загружать EditorLineEnds.шрифт ttr больше не используется. (Решение 1 и 2 не имеют этого недостатка, но кто использует такой вариант?)

Примечание: Microsoft отозвала это исправление через несколько дней и выпустил новый KB2984615 на 2014-08-27. К сожалению, это не решило проблему для меня. Возможно, сначала удалите KB2982791, а затем установите KB2984615, но я не пробовал.

Я писал простая программа, что решает проблему для меня:

Он использует FindFirstChangeNotification / FindNextChangeNotification и проверяет, существует ли этот файл, и если да, перемещает его в уникальный подкаталог в %temp%.

Бинарные скачать

исходный код из sourceforge.


Это мой bds_start.сценарий bat работает Delphi2006 в системе Win7-64bit. Я настроил ответ GabeMeister и аналогичный скрипт, найденный в одной из ссылок. Теперь я могу перезапустить DelphiIDE без перезагрузки. Все файлы TTR temp по-прежнему заблокированы системой so del команда может не работать. Они удаляются после перезагрузки системы.

однако невозможно перезапустить Delphi, дважды щелкнув myproject.файлы проекта dpr. Я боялся устанавливать IDEFixPack для D2006, потому что один из комментариев не обещал ему работать.

bds_start.летучая мышь!--11-->

@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.0\Bin\bds.exe" -pDelphi

запуск cbuilder изменить аргумент на - pCBuilder. Возможно, лучше всего было бы создать bds.инструмент замены exe, del / move *.ttr-файл, выполнить и передать аргументы cmd в исходный bds_original.файл EXE. Это должно позволить *.ДНР дважды щелкните перезагрузится. Или используйте BdsLauncher.exe, который, я думаю, regedit связан с *.расширение ДНР. Затем списке процесс диски BD.имя exe.


вот еще один обходной путь от 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. но с auto update оба обновления устанавливаются каждый раз

2: отключить КБ от autoupdate
после обновления goto WindowsUpdatesin в вашей системе. отключите оба КБ, так что на новых обновлениях это не будет установлен снова


для Delphi 2007 установите IDEFixPack 4.4 и добавьте в системные настройки следующую переменную среды:

IDEFixPack.DisabledPatches=Dotnet Ограничителя.GlobalizationSearch

Перезагрузка и все должно работать. У меня есть 2 ПК с Win 8.1 Pro и его работает как шарм!


просто чтобы указать, что обновление KB2982791 было отозвано Microsoft. Упомянутые причины, по-видимому, связаны с проблемами рендеринга шрифтов и сбоями системы, а не с этой конкретной проблемой, которая на первый взгляд кажется ошибкой Delphi и просто усугубляется обновлением.

обновлена статья КБ на сайте Майкрософт:http://support.microsoft.com/kb/2982791

в частности, эти разделы интерес:

известная проблема 2
Microsoft изучает поведение, в котором шрифты делают не отображается правильно после установки любого из следующих обновлений:
2982791 MS14-045: описание обновления для системы безопасности в режиме ядра драйверы: 12 августа, 2970228 обновление для поддержки новой валюты символ российского рубля в Windows
2975719 август 2014 обновление накопительный пакет для Windows RT 8.1, Windows 8.1 и Windows Server 2012 R2
2975331 августа 2014 накопительный пакет обновления для Windows RT, Windows 8 и Windows Server 2012

статус
Microsoft удалила ссылки для загрузки эти обновления во время расследования этих проблем.

известная проблема 3
Microsoft изучает поведение, в котором системы могут сбой с сообщением об ошибке 0x50 Stop (bugcheck) после любого из следующие обновления установлено:
2982791 MS14 - 045: описание обновление безопасности для драйверов режима ядра: 12 августа 2014
Два миллиона девятьсот семьдесят тысяч двести двадцать восемь Обновление для поддержки нового символа валюты российского рубля в Окна
2975719 август 2014 накопительный пакет обновления для Windows RT 8.1, Windows 8.1 и Windows Server 2012 R2
2975331 августа 2014 накопительный пакет обновления для Windows RT, Windows 8 и Windows Server 2012

Это условие может быть настойчивый и может предотвратить система запускается правильно.

статус
Microsoft удалила ссылки на скачивание этих обновлений пока эти вопросы изучаются.


проблема, похоже, связана с обновлениями Windows, установленными 13 августа. Я попытался удалить KB2982791, как было предложено предыдущим плакатом, но это не решило проблему. Удаление все обновления Windows от 13 августа все же вылечили проблему.


Если вы находитесь в 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.0\bin\bds.exe"

то же самое для CodeGear Delphi 2009 В Windows 7

удаление после обновления windows 2982791 2970228 не поможет.

использование IDE Fix Pack после этого поможет.


dzEditorLineEndsFix-не удается создать файл %Temp%\EditorLineEnd.ttr

Это небольшая программа, которая устраняет проблему, введенную центром обновления Windows KB2982791 с Delphi 2006 по 2010, которая вызывает ошибку " не удается создать файл %Temp%\EditorLineEnds.ttr". Он работает, перемещая файл в свой собственный уникальный подкаталог всякий раз, когда он создается.


Я использую Windows 8, а не 8.1

Я отключил все обновления Windows, и вчера я проверил наличие обновлений и установите все обновления безопасности. Сегодня у меня такая же проблема, но ни одно из вышеупомянутых обновлений не было установлено на моем ноутбуке. Я искал их все, но не нашел между установленными обновлениями безопасности:

KB2982791, KB2970228, KB2975719, KB2975331

но я нашел другое обновление KB2993651 и попытался удалить это процесс удаления был остановлен. Я сбросил комп. Теперь я не могу найти это обновление, и проблема не решена.

поэтому не нашел другого обходного пути и создал следующий скрипт, который я запускаю перед открытием RAD 2010.

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

Я использую функцию % RANDOM%, потому что с фиксированным именем во второй раз переименованный файл также будет заблокирован, и сценарий не будет успешным при переименовании.