Я получаю сообщение об ошибке после установки 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 Пробовал следующие решения, но все еще имел такую же проблему с файловой блокировкой:
Я попробую переустановить Windows с нуля и установить Delphi перед Windows обновления, чтобы узнать, действительно ли вызваны обновления. Мое обходное решение пока просто переименовывает EditorLineEnds.ttr перед запуском Delphi.
Есть три решения для этого, о которых я знаю:
Примечание. Microsoft удалила это исправление через несколько дней и выпустила новый KB2984615 в 2014-08-27. К сожалению, это не повлияло на меня. Возможно, сначала удалите KB2982791, а затем установите KB2984615, но я не пробовал.
Я написал простую программу, которая решает проблему для меня:
Он использует FindFirstChangeNotification/FindNextChangeNotification и проверяет, существует ли этот файл, и если да, переводит его в уникальный подкаталог в% temp%.
Исходный код доступен из sourceforge.
Это мой 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.
Для Delphi 2007 установите IDEFixPack 4.4 и добавьте в системные настройки следующую переменную среды:
IDEFixPack.DisabledPatches = DotNet.GlobalizationSearch
Перезагрузитесь, и он должен работать. У меня есть 2 настольных компьютера с Win 8.1 Pro и работает как шарм!
Вот еще одно обходное решение из 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 вашей системы. отключите оба КБ, так что на новых обновлениях это не будет установлен снова
Просто отметим, что обновление 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 удалила ссылки для скачивания на эти обновления, пока эти вопросы расследуются.
dzEditorLineEndsFix - Невозможно создать файл% Temp%\EditorLineEnd.ttr
Это небольшая программа, которая устраняет проблему, возникшую при обновлении Windows KB2982791 с Delphi 2006 по 2010 год, которая вызывает ошибку "Невозможно создать файл% Temp%\EditorLineEnds.ttr". Он работает, перемещая файл в свой собственный уникальный подкаталог всякий раз, когда он создается.
То же самое для CodeGear Delphi 2009 в Windows 7
Удаление следующего обновления Windows 2982791 2970228 не поможет.
Использование пакета исправлений IDE после этого поможет.
Если вы работаете с окнами, я создал пакетный файл для запуска 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"
Проблема, похоже, связана с обновлениями Windows, установленными 13 августа. Я попытался удалить KB2982791, как это было предложено предыдущим плакатом, но это не устранило проблему. Удаление обновлений all Windows с 13 августа устранило проблему.
Я использую Windows 8, а не 8.1
Я отключил все обновления Windows, и вчера я проверил наличие обновлений и установил все обновления безопасности. Сегодня у меня такая же проблема, но ни одно из вышеупомянутых обновлений не было установлено на моем ноутбуке. Я искал их всех, но не нашел между установленными обновлениями безопасности:
KB2982791, KB2970228, KB2975719, KB2975331
Но я нашел еще одно обновление KB2993651 и попытался его удалить, процесс удаления был остановлен. я reset мой комп. Теперь я не могу найти это обновление, и проблема не решена.
Так что не нашел другого обходного пути и создал следующий script, который я запускал до открытия RAD 2010.
cd %temp%
ren EditorLineEnds.ttr EditorLineEnds%RANDOM%.ttr
Я использую функцию% RANDOM%, потому что с фиксированным именем во второй раз переименованный файл также будет заблокирован, а script не удастся переименовать.