Подтвердить что ты не робот

Ошибка Delphi 2006-2010: "Невозможно создать файл C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr"

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

"Невозможно создать файл C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr". Процесс cannont доступа к файлу, потому что он используется другим процессом.

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

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

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

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

  • Переименованный каталог Temp в каталог, который я знаю, имеет полные права безопасности. Файлы будут создаваться в этом каталоге при запуске Delphi, но EditorLineEnds.ttr все равно будет заблокирован системой и не позволит мне перезапустить.
  • Удалены следующие обновления безопасности KB2982791 и KB2976897, но это не решило проблему. На данный момент я отключил обновления Windows и попытаюсь удалить все исправления безопасности для 8/13.
  • Удаленный Delphi полностью и переустановлен. Проблема все еще возникает после повторной установки всего.

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

4b9b3361

Ответ 1

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

  • Попробуйте удалить обновление безопасности Windows KB2982791, которое уже упоминалось Франсиско Каффани. Это решило проблему для меня (Windows 8.1 + Delphi 2007), но, возможно, не очень хорошая идея удалить обновление безопасности Windows.
  • Переименуйте файл каждый раз, когда вы запускаете Delphi. Ниже приведена простая программа, которая делает это для вас.
  • Используйте Andreas Hausladen IdeFixpack (версия 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%.

Binary download

Исходный код доступен из sourceforge.

Ответ 2

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

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

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, запустить и передать CMD-аргументы в исходный файл bds_original.exe. Это должно включить перезагрузку двойного щелчка *.dpr. Или используйте BdsLauncher.exe, который, я думаю, regedit связан с расширением *.dpr. Тогда в списке процессов было имя bds.exe.

Ответ 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
этот командный файл, который вы запускаете при запуске окон. но с автоматическим обновлением оба обновления устанавливаются каждый раз

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

Ответ 4

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

IDEFixPack.DisabledPatches = DotNet.GlobalizationSearch

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

Ответ 5

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

Была обновлена ​​статья KB на сайте Microsoft: http://support.microsoft.com/kb/2982791

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

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

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

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

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

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

Ответ 6

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

Ответ 7

Если вы работаете с окнами, я создал пакетный файл для запуска Delphi. В основном это командный файл, который изменяет имя EditorLineEnds.ttr на текущее время, перемещает его в другую подпапку и затем запускает Delphi.

Вот содержимое моей партии script:

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"

Ответ 8

То же самое для CodeGear Delphi 2009 в Windows 7

Удаление следующего обновления Windows 2982791 2970228 не поможет.

Использование пакета исправлений IDE после этого поможет.

Ответ 9

dzEditorLineEndsFix - Невозможно создать файл% Temp%\EditorLineEnd.ttr

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

Ответ 10

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

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

KB2982791, KB2970228, KB2975719, KB2975331

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

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

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

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