08.09.2016, 00:14. Показов 11697. Ответов 7
Установил XE8 — всё было ок. Вскоре удалил, чтобы установить 10.1 Berlin. И тут начались проблемы.
При запуске bds стала возникать ошибка (MessageBox): «Система конфигурации не прошла инициализацию».
Затем следующее окно: «Access violation at address 205FBCE2 in module ‘coreide240.bpl’. Read of address 00000000».
Удалил Berlin, поставил Seattle — то же самое.
Удалил Seattle, поставил XE8 — то же самое (но он же работал недавно!!!)
Поставил 2007 — и тут тоже «Система конфигурации не прошла инициализацию», но есть кнопка Details:
Код
[2066BF24]{TGIDE100.bpl} TogetherOptions.TTogetherAddInOptions.SaveOptions (Line 87, "TogetherOptions.pas" + 2) + $11
[2000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "syssystem.pas" + 6) + $0
[2066BF24]{TGIDE100.bpl} TogetherOptions.TTogetherAddInOptions.SaveOptions (Line 87, "TogetherOptions.pas" + 2) + $11
[20A04DB1]{coreide100.bpl} EnvOptions.TEnvironmentOptions.SaveAddInOptions (Line 1805, "EnvOptions.pas" + 4) + $A
[20A03CAA]{coreide100.bpl} EnvOptions.TEnvironmentOptions.SaveOptions (Line 1361, "EnvOptions.pas" + 13) + $2
[20A7D0A0]{coreide100.bpl} ToolFrm.TToolForm.LoadOptions (Line 2333, "ToolFrm.pas" + 50) + $2
[20A7841B]{coreide100.bpl} ToolFrm.TToolForm.FormCreate (Line 333, "ToolFrm.pas" + 20) + $2
[20158AC9]{vcl100.bpl } Forms.TCustomForm.DoCreate (Line 2949, "Forms.pas" + 5) + $B
[20158721]{vcl100.bpl } Forms.TCustomForm.AfterConstruction (Line 2869, "Forms.pas" + 5) + $6
[20006BA9]{rtl100.bpl } System.@AfterConstruction (Line 9520, "syssystem.pas" + 2) + $5
[20D1CCA8]{designide100.bpl} DockForm.TDockableForm.Create (Line 108, "DockForm.pas" + 3) + $6
[20A7D69D]{coreide100.bpl} ToolFrm.TToolForm.MainIDEFormInitialized (Line 2408, "ToolFrm.pas" + 1) + $F
[20D16ABD]{designide100.bpl} Events.TEvent.Send (Line 92, "Events.pas" + 2) + $11
[0041369F]{bds.exe } AppMain.TAppBuilder.CMPostCreateInit (Line 1874, "uiAppMain.pas" + 40) + $2
[2013C527]{vcl100.bpl } Controls.TControl.DefaultHandler (Line 5157, "Controls.pas" + 5) + $9
[20159E7F]{vcl100.bpl } Forms.Default (Line 3519, "Forms.pas" + 1) + $8
[201406A7]{vcl100.bpl } Controls.TWinControl.DefaultHandler (Line 7312, "Controls.pas" + 1) + $7
[20159E7F]{vcl100.bpl } Forms.Default (Line 3519, "Forms.pas" + 1) + $8
[2013FDD0]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7079, "Controls.pas" + 9) + $3
[20040E4C]{rtl100.bpl } Classes.MakeObjectInstance (Line 11615, "commonClasses.pas" + 11) + $3
[20137642]{vcl100.bpl } Controls.IsVCLControl (Line 2113, "Controls.pas" + 2) + $B
[201625F0]{vcl100.bpl } Forms.TApplication.ProcessMessages (Line 8117, "Forms.pas" + 1) + $2
[2016262A]{vcl100.bpl } Forms.TApplication.HookMainWindow (Line 8131, "Forms.pas" + 1) + $0
[2016291F]{vcl100.bpl } Forms.TApplication.Run (Line 8225, "Forms.pas" + 22) + $C
[00422976]{bds.exe } bds.bds (Line 195, "" + 7) + $7
Переустановил .NET Framework — эффект нулевой.
Далее стал удалять bds.exe.config.
Результат:
• Berlin — запускается, но при компиляции даже пустого проекта пишет:
Код
[MSBuild Error] The "CreateProperty" task could not be instantiated from the assembly "Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly as the one installed on your computer and that your host application is not missing a binding redirect for Microsoft.Build.Framework. Unable to cast object of type 'Microsoft.Build.Tasks.CreateProperty' to type 'Microsoft.Build.Framework.ITask'. [MSBuild Error] The "CreateProperty" task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name.
• 2007 — выдаёт Access violation (адрес 00000000, попытка чтения адреса 00000000).
Восстанавливаю bds.exe.config, теперь запускается, предварительно выдав сообщение:
Код
Failed to load IDE add in 'C:Program Files (x86)CapableObjectsECO4.0designBDSEco.BdsLoader.dll'. Адресат вызова создал исключение. Additional Information: Система конфигурации не прошла инициализацию
Ещё по началу ругался на EditorLineEnds.ttr, но потом перестал (после трёх переименований).
При компиляции пустого проекта тоже выдаёт:
Код
[MSBuild Error] The "DCC" task failed unexpectedly. System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section startup. (C:Program Files (x86)CodeGearRAD Studio5.0binbds.exe.Config line 2) at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors() at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) --- End of inner exception stack trace --- at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName) at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName) at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection() at System.Diagnostics.DiagnosticsConfiguration.Initialize() at System.Diagnostics.DiagnosticsConfiguration.get_SwitchSettings() at System.Diagnostics.Switch.InitializeConfigSettings() at System.Diagnostics.Switch.InitializeWithStatus() at System.Diagnostics.Switch.get_SwitchSetting() at System.Diagnostics.BooleanSwitch.get_Enabled() at System.Xml.Serialization.TempAssembly.LoadGeneratedAssembly(Type type, String defaultNamespace, XmlSerializerImplementation& contract) at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type) at Borland.Build.Tasks.Common.Metadata.TaskFactory.get_Metadata() at Borland.Build.Tasks.Common.ToolTaskManager.GetMetadata(String name) at Borland.Build.Tasks.Common.BaseTask.get_Metadata() at Borland.Build.Tasks.Delphi.DCC.TargetOutOfDate() at Borland.Build.Tasks.Common.BaseTask.SkipTaskExecution() at Microsoft.Build.Utilities.ToolTask.Execute() at Borland.Build.Tasks.Common.BaseTask.Execute() at Borland.Build.Tasks.Delphi.DCC.Execute() at Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)
В общем, что делать — непонятно. Попытки запуска от имени администратора ни к чему не приводят. Использование фиксов http://andy.jgknet.de/blog/ide-tools/ide-fix-pack/ не помогает.
Я уже на это потратил несколько дней по много часов. Задолбался конкретно!
Подскажите, плиз, кто знает!!! Что делать, чтобы всё заработало?!
p.s. Вот здесь ещё обсуждение моей темы есть: http://forum.sources.ru/index.php?showtopic=409503
p.p.s. Винду (Win 7 x64) переставлять не хочу.
Заранее спасибо!!!!!
0
В большинстве случаев проблемы, связанные с файлами bds.exe, возникают в результате отсутствия или повреждения файла (вредоносное ПО / вирус) и часто наблюдаются при запуске программы Architect. Как правило, решить проблему позволяет получение новой копии файла EXE, которая не содержит вирусов. Кроме того, регулярная очистка и оптимизация реестра Windows предотвратит создание неправильных ссылок на пути к файлам EXE, поэтому мы настоятельно рекомендуем регулярно выполнять сканирование реестра.
Формат Windows Executable File с расширением файла EXE классифицируют в качестве Исполнимые файлы. Bds.exe для %%os%% и почти для всех версий операционной системы Windows можно скачать ниже. Если в настоящий момент отсутствует необходимая вам версия bds.exe, запросите ей, нажав на кнопку Request (Запрос) рядом с необходимой версией файла. Если вы не можете найти нужную версию файла в нашей базе данных, вы также можете обратиться за дополнительной помощью к Embarcadero Technologies, Inc..
После успешного размещения файла в соответствующем месте на жёстком диске подобных проблем, связанных с bds.exe, больше возникать не должно. Настоятельно рекомендуем выполнить быструю проверку. Повторно запустите Architect, чтобы убедиться в успешном решении проблемы.
| bds.exe Описание файла | |
|---|---|
| Расширение файла: | EXE |
| Группа: | Embarcadero RAD Studio for Windows |
| App: | Architect |
| Версия выпуска: | 15.0.3953.35171 |
| Автор: | Embarcadero Technologies, Inc. |
| Имя: | bds.exe |
| Размер: | 10436504 |
| SHA-1: | 2a69030b01795809e5cf86e144689755f1dfbf8f |
| MD5: | 6475fd840297bf65441016cdcc42413c |
| CRC32: |
Продукт Solvusoft
Загрузка
WinThruster 2022 — Сканировать ваш компьютер на наличие ошибок реестра в bds.exe
Windows
11/10/8/7/Vista/XP
Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление
EXE
bds.exe
Идентификатор статьи: 1115531
Bds.exe
1
2
Выберите программное обеспечение
| Filename | MD5 | Размер | Загрузить | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| + bds.exe | 6475fd840297bf65441016cdcc42413c | 9.95 MB | ||||||||||||||||||
|
Типичные ошибки Bds.exe
Обнаруженные проблемы bds.exe с Architect включают:
- «Ошибка программы Bds.exe. «
- «Bds.exe не является программой Win32. «
- «Bds.exe должен быть закрыт. «
- «Файл bds.exe не найден.»
- «Bds.exe не найден.»
- «Ошибка запуска программы: bds.exe.»
- «Bds.exe не работает. «
- «Bds.exe выйти. «
- «Bds.exe: путь приложения является ошибкой. «
Ошибки Bds.exe EXE возникают во время установки Architect, при запуске приложений, связанных с Bds.exe (Architect), во время запуска или завершения работы или во время установки ОС Windows. Документирование проблем bds.exe в Architect является ключевым для определения причины проблем с электронной Embarcadero RAD Studio for Windows и сообщения о них в Embarcadero Technologies, Inc..
Источники проблем Bds.exe
Проблемы Architect и Bds.exe возникают из отсутствующих или поврежденных файлов, недействительных записей реестра Windows и вредоносных инфекций.
В первую очередь, проблемы bds.exe создаются:
- Недопустимая (поврежденная) запись реестра bds.exe.
- Вирус или вредоносное ПО, повреждающее bds.exe.
- Вредоносное удаление (или ошибка) bds.exe другим приложением (не Architect).
- Bds.exe конфликтует с другой программой (общим файлом).
- Architect (bds.exe) поврежден во время загрузки или установки.

Ошибка при запуске RAD Studio
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
|
|
Законченный оптимист
Рейтинг (т): 117 |
Установил XE8 (всё было нормально!) Вскоре снёс его, чтобы установить 10.1 Berlin. Удалил, поставил Seattle — то же самое. Удалил полностью .NET Framework (в т.ч. через Cleanup Tool), переустановил. Затем заново поставил Berlin — не помогает! p.s. Win7 x64. |
Jin X |
|
|
Законченный оптимист
Рейтинг (т): 117 |
После удаления bds.exe.config на 2007 вылетает вот такая ошибка… И не запускается ничего… |
|
Gonarh |
|
|
Full Member
Рейтинг (т): 28 |
О, ыщщо один пострадавший. Тоже все время наёбся. Трабл в одном из апдейтов винды, который не даёт грохнуть
del «%temp%EditorLineEnds*.ttr» set dt=%date%_%time:~3,2%-%time:~6,2% rename «%temp%EditorLineEnds.ttr» «EditorLineEnds_%dt%.ttr» start «» «путь к бинарникуbds.exe» -pDelphi |
|
RusSun |
|
|
Full Member
Рейтинг (т): 6 |
у меня такое на работе. Фикс по этой проблеме |
Jin X |
|
|
Законченный оптимист
Рейтинг (т): 117 |
Gonarh, после переименования ttr-файла начинается следующее… RusSun, спасибо, сейчас гляну! Добавлено 07.09.16, 15:19 И продолжает работу (IDE открывает). Добавлено 07.09.16, 15:24
[MSBuild Error] The «DCC» task failed unexpectedly. System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize —> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section startup. (C:Program Files (x86)CodeGearRAD Studio5.0binbds.exe.Config line 2) at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors() at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) — End of inner exception stack trace — at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName) at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName) at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection() at System.Diagnostics.DiagnosticsConfiguration.Initialize() at System.Diagnostics.DiagnosticsConfiguration.get_SwitchSettings() at System.Diagnostics.Switch.InitializeConfigSettings() at System.Diagnostics.Switch.InitializeWithStatus() at System.Diagnostics.Switch.get_SwitchSetting() at System.Diagnostics.BooleanSwitch.get_Enabled() at System.Xml.Serialization.TempAssembly.LoadGeneratedAssembly(Type type, String defaultNamespace, XmlSerializerImplementation& contract) at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type) at Borland.Build.Tasks.Common.Metadata.TaskFactory.get_Metadata() at Borland.Build.Tasks.Common.ToolTaskManager.GetMetadata(String name) at Borland.Build.Tasks.Common.BaseTask.get_Metadata() at Borland.Build.Tasks.Delphi.DCC.TargetOutOfDate() at Borland.Build.Tasks.Common.BaseTask.SkipTaskExecution() at Microsoft.Build.Utilities.ToolTask.Execute() at Borland.Build.Tasks.Common.BaseTask.Execute() at Borland.Build.Tasks.Delphi.DCC.Execute() at Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound) Жесть какая-то! Добавлено 07.09.16, 15:28 |
|
RusSun |
|
|
Full Member
Рейтинг (т): 6 |
Цитата Jin X @ 07.09.16, 15:00 Теперь появилось вот такое сообщение при компиляции (даже пустого проекта):
Значит дело в чём-то ещё.( Сообщение отредактировано: RusSun — 07.09.16, 16:24 |
Jin X |
|
|
Законченный оптимист
Рейтинг (т): 117 |
На Берлине та же ситуация, т.е. MessageBox’ы «Система конфигурации не прошла инициализацию» и «Access violation at address 205FBCE2 in module ‘coreide240.bpl’. Read of address 00000000». После удаления bds.exe.config всё запускается, но ничего не компилится (даже пустой проект), выдаёт:
MSBuildToolsPath is not specified for the ToolsVersion «2.0» defined at «HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSBuildToolsVersions2.0», or the value specified evaluates to the empty string. Хотя ключ MSBuildToolsPath по указанному пути есть и указывает на существующую папку! Добавлено 07.09.16, 18:55
[MSBuild Error] The «CreateProperty» task could not be instantiated from the assembly «Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a». Please verify the task assembly has been built using the same version of the Microsoft.Build.Framework assembly as the one installed on your computer and that your host application is not missing a binding redirect for Microsoft.Build.Framework. Unable to cast object of type ‘Microsoft.Build.Tasks.CreateProperty’ to type ‘Microsoft.Build.Framework.ITask’. [MSBuild Error] The «CreateProperty» task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name. Что это может быть теперь??? |
Jin X |
|
|
Законченный оптимист
Рейтинг (т): 117 |
Новый прикол: теперь 2007 не устанавливается. Начинает спрашивать папку с Setup.msi. Я её нахожу, указываю, он говорит, что это не тот файл. Добавлено 07.09.16, 20:15 Добавлено 07.09.16, 20:44 |
Jin X |
|
|
Законченный оптимист
Рейтинг (т): 117 |
В общем, из последнего: Осталось только под VMWare установить или переустановить винду. Только где гарантия, что при попытке переустановить RAD Studio, ситуация не повториться…? Вообще, есть какие-нибудь настройки компилятора в IDE? Ведь dcc32 же компилит нормально! |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Delphi: Общие вопросы
- Следующая тема
[ Script execution time: 0,0706 ] [ 22 queries used ] [ Generated: 28.01.23, 18:02 GMT ]
I have done extensive research looking for a solution for this. I know that this error is not in my code. I can create a new project with only the TFDconnection Component attempt to connect to a new access database and I still receive and Access violation error. I have reinstalled Rad Studio 10.3 but the problem persist. Any help trouble shooting this would be appreciated.
function TODBCConnection.DriverConnect(const AConnString: String;
ADriverCompletion: SQLUSmallint; AParentWnd: SQLHWnd): String;
var
iOutConnStrLen: SQLSmallint;
{$IFDEF FireDAC_MONITOR}
s: String;
i1, i2: Integer;
{$ENDIF}
begin
{$IFDEF FireDAC_MONITOR}
if Tracing then begin
s := AConnString;
i1 := Pos('PWD=', UpperCase(s));
if i1 <> 0 then begin
i2 := Pos(';', s, i1);
if i2 = 0 then
i2 := Length(s) + 1;
Inc(i1, 4);
while i1 < i2 do begin
s[i1] := '*';
Inc(i1);
end;
end;
Trace(ekVendor, esProgress, 'SQLDriverConnect', ['szConnStr', s]);
end;
{$ENDIF}
SetLength(Result, C_RETURNED_STRING_MAXLEN);
FillChar(Result[1], C_RETURNED_STRING_MAXLEN * SizeOf(Char), 0);
iOutConnStrLen := 0;
-> Check(Lib.SQLDriverConnect(FHandle, AParentWnd, PSQLChar(AConnString),
SQL_NTS,
PSQLChar(Result), C_RETURNED_STRING_MAXLEN, iOutConnStrLen,
ADriverCompletion));
FConnected := True;
AfterConnect;
ODBCSetLength(Result, iOutConnStrLen);
end;
The exception points to line show after -> «I apologize I am not sure how to correctly post the error line»
- Remove From My Forums
-
Question
-
Hi I am having an error compiling my program using Delphi 2009.
Here how to reproduce it —> http://www.ficforlife.com/2009/01/bug-delphi-2009-pada-windows-7-beta.html
as I am investage more, all database connectection (not just ado) will likely to have the same error after few compile.
Please someone help me fix the solution? I realy like Windows 7, but my job is to make program in Delphi 2009 with database.
Thank you.Regard,
Hok.
HOK
Answers
-
-
Marked as answer by
Wednesday, February 18, 2009 2:09 PM
-
Marked as answer by
-
Since my Internet having trouble, I have just finish download x64 today morning. I have been installed. The strage thing is the 64 bit wallpaper is still bheta fish. I don’t do / install anything. Just create system restore and install Delphi. And the result is……
Just one single compile, generate the exe, close exe and the IDE (or BDE) error back to the first. I thing when this is happen is I just need to go to Embarcadero. Thx for all that help me. Case Close Unsolved (I need use it in 64 bit, not 32 bit).
HOK
-
Marked as answer by
Hokgiarto
Monday, March 16, 2009 4:39 AM
-
Marked as answer by
я загрузил компонент UniDac для delphi XE2 и установил его, теперь, когда запускаю файл DelphiXE2, я получаю следующие ошибки от delphi, и когда я нажимаю ok, delphi загружается успешно, но компонент UniDac не устанавливается.
В список ошибок входят:
bds.exe — системная ошибка
Программа не может запуститься, потому что на вашем компьютере отсутствует файл fmx162.bpl. Попробуйте переустановить программу, чтобы решить эту проблему.
OK
[Заголовок окна] Ошибка
[Содержание] Не удалось найти мастер, ‘d:Program FilesDevartUniDAC для RAD Studio XE2BinWin32unimigwizard160.dll’.
[OK]
bds.exe — системная ошибка
Программа не может запуститься, потому что на вашем компьютере отсутствует файл fmx162.bpl. Попробуйте переустановить программу, чтобы решить эту проблему.
OK
и, наконец, получить эту ошибку:
[Заголовок окна] Ошибка
[Содержание] Не удается загрузить пакет d:program filesembarcaderorad studio9.0bindclunidac160.bpl. Указанный модуль не может быть найден. Вы хотите попытаться загрузить этот пакет при следующей загрузке проекта?
[Да нет]
Благодарю.
Это перевод Delphi Startup Times and the Kitchen Sink. Автор: Mark Edington.
Прим.пер.: время загрузки среды не является проблемой, начиная с Delphi 2009 (и даже Delphi 2007 часто показывает отличные результаты), но этот материал будет полезен не только при оптимизации запуска, но и для организации нескольких рабочих конфигураций среды.
Шаблонное предупреждение о редактировании реестра: в этой статье проповедуется редактирование системного реестра (о, нет, только не это!). Если это то, от чего вы брезгливо отворачиваетесь, то эта статья, вероятно, не для вас. Если же вы решили идти вперед с любой из процедур, которые я предлагаю ниже, то учтите, что вы делаете это на свой страх и риск. Если что-то пойдет не так, вы можете винить меня, если вам станет от этого легче.
Borland Developer Studio 2006 является тем, что я бы квалифицировал как весьма «существенная» часть программного обеспечения. Она поставляется на четырех компакт-дисках и включает в себя много дополнительных приложений в дополнение к основной среде разработки (далее именуемой «IDE»). Основная программа установки для версии Architect устанавливает также более 20’000 файлов — и это не считая файлов, устанавливаемых с companion-дисков!
Для реализации всех характеристик и функциональности IDE требуется загрузить значительное количество модулей (в основном DLL и сборок .NET). В зависимости от версии продукта и установленных компонентов, при загрузке легко может загружаться более 400 различных модулей во время запуска среды. Они включают в себя такие вещи, как файлы пакетов, которые предоставляют функции IDE, пакеты компонентов, которые обеспечивают работу компонентов для создания приложений в IDE, системные файлы, типа kernel32.dll, файлы фреймворка .NET, и многие, многие другие типы модулей.
Как вы можете себе представить, загрузка всех этих модулей и выполнение их кода инициализации занимает кучу времени. Повезло тем, у кого есть невероятно быстрое аппаратное обеспечение, например двухъядерный процессор с RAID массивом SSD дисков и несколько гигабайт оперативной памяти — они, возможно, не задумываются над временем запуска IDE, но большинство пользователей с более скромным аппаратным обеспечением, вероятно, не будет возражать, если время запуска среды немного уменьшится.
Данная статья должна дать вам некоторое понимание того, что занимает больше всего времени при загрузке среды, и обсудить как вы можете настроить конфигурацию, чтобы улучшить время запуска для ваших личных потребностей.
Примечание: мы продолжаем изучать способы, с помощью которых время запуска среды может быть уменьшено. Наиболее очевидный подход, как правило, заключается в задержке загрузки модулей и оптимизации или отсрочке исполнения кода инициализации. Однако, стоит отметить, что большинство случаев сокращения времени запуска с помощью этих методов, вероятно, привнесут задержку в работе в какой-то момент позже, когда будет происходить загрузка или выполнение отложенного кода инициализации, так что это вроде как компромисс. Я надеюсь, что есть золотая середина, которую мы сможем где-нибудь найти, которая даст нам очень разумные сроки запуска без введения неприемлемых задержек в работе IDE после запуска. Данная статья не претендует на описание того, что мы могли бы сделать в будущем, а скорее фокусируется на том, чтобы дать вам некоторую информацию, которая будет полезна сегодня, если вы используете BDS 2006.
Закапываемся в новый ключ командной строки BDS.EXE: –p
Если вы установили все personality IDE, то вы увидите, что у вас есть несколько ярлыков для запуска IDE в папке Borland Developer Studio меню Пуск. Один ярлык запускает IDE со всеми доступными personality, другой запускает только personality Delphi Win32, а третий — только CSharp, и так далее. Если вы посмотрите на свойства ярлыков, то увидите, что те, которые запускают единственную personality, содержат переключатель командной строки –p. Это новый ключ, введённый в Delphi 2006, чтобы позволить пользователям выборочно загружать пакеты IDE. При этом вы получаете эффект уменьшения времени загрузки IDE, ограничивая набор пакетов для загрузки. Например, только Delphi personality загрузится намного быстрее, чем все доступные personalitiy.
Чтобы понять, что делает ключ –p, вам нужно запустить редактор реестра Windows (regedit.exe) и открыть этот ключ реестра:
HKEY_CURRENT_USERSoftwareBorlandBDS4.0Known IDE Packages
Прямо под этим ключом вы увидите набор строковых значений для различных пакетов IDE. Например:
$(BDS)Binasmview100.bpl $(BDS)BinBorland.Caliber.IDE100.bpl
В этом ключе также есть несколько под-ключей (вы можете увидеть их, развернув элемент дерева «Known IDE Packages» слева). В BDS 2006 эти под-ключи могут быть: CBuilder, CSharp, Delphi, DelphiDotNet и VB. Каждый из этих под-ключей соответствует конкретной personality IDE. Если вы вернётесь и снова посмотрите на свойства ярлыков в меню Пуск, то вы увидите, что каждый ярлык указывает также подстроку, указывающую, какой набор пакетов грузить. Например, если вы запустите BDS.EXE, используя командную строчку –pDelphi — то среда загрузит все пакеты, перечисленные в ключе «Known IDE Packages», а также пакеты, указанные в под-ключе «Delphi». Пакеты, указанные во всех прочих под-ключах, грузиться не будут. Когда –p не указан, IDE загрузит все пакеты ключа «Known IDE Packages» и все пакеты во ВСЕХ под-ключах.
Настоящий секрет, которым я хочу поделиться сегодня с вами, заключается в том, что выборочная загрузка пакетов не привязана к personality. Это просто общий механизм, который может быть настроен так, как вы захотите. Что означает, что те, кто обожает всё тонко настраивать, только что заимели ещё один инструмент в свою копилку. Вы можете упорядочить пакеты IDE любым удобным вам способом. Всё, что вам надо сделать — отредактировать под-ключи реестра.
Прежде, чем я нырну в обсуждение способов это сделать, я хотел бы изложить важную информацию о ключе –p. Во-первых, вы можете передавать несколько имён под-ключей, разделяя их точкой с запятой. К примеру, если вы хотите загрузить Delphi и Delphi .NET, то вы можете использовать ключ –pDelphi;DelphiDotNet. Второе: пакеты, указанные в самом ключе «Known IDE Packages» будут грузиться всегда, вне зависимости от того, указан ключ –p или нет.
Почему я вообще могу захотеть лезть в конфигурацию моей среды с редактором реестра?
Хороший вопрос. Имеется несколько очевидных ситуаций, когда вы захотите сделать это. Первая будет разработкой компонента, когда вам необходимо отладить код дизайнера компонента. Для этого вы обычно запускаете вторую копию IDE, к которой подключаетесь отладчиком первой IDE. Вам придётся запускать и останавливать эту вторую IDE много раз, поэтому вы сэкономите много времени, если она будет загружать только минимальный набор пакетов, необходимых для отладки. Если у вас достаточно быстрая машина (>= 2 ГГц) с достаточным количеством памяти (>= 768 Мб), то вполне возможно сделать так, чтобы вторая копия запускалась за несколько секунд.
Вторая причина: в IDE есть куча функциональности. Есть хорошие шансы, что вы не используете всю её в каждой рабочей сессии. Настроив загрузку пакетов IDE, вы можете значительно сократить время запуска среды, если вы не будете грузить пакеты, которые вы используете редко или не используете совсем. Приятной особенностью ключа –p является то, что вы в любой момент можете получить доступ к полной конфигурации, просто запустив среду с другой командной строкой.
Начинаем — сначала резервная копия!
Прежде чем мы начнём, я настоятельно рекомендую сделать вам резервную копию всего ключа реестра HKEY_CURRENT_USERSoftwareBorlandBDS4.0. Проще всего сделать это — перейти на этот ключ в дереве в regedit и выбрать пункт меню File | Export и сохранить ключ в файл на диск (я предлагаю назвать файл типа «BDS 2006 Configuration Backup.reg»). Это — хорошая вещь. Вы сможете легко восстановить свою среду без переустановки, если что-то пойдёт не так. Если вам нужно будет восстановить всё к исходному состоянию, то вы просто удаляете этот ключ реестра и импортируете файл резервной копии. Стоит также заметить, что если вы удалите ключ реестра, но не восстановите его, то перезапуск IDE пересоздаст ключ со значениями по-умолчанию.
Примечание: будьте внимательны и не перепутайте ветки HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE. Мы работаем только с HKEY_CURRENT_USER. Ветка HKEY_LOCAL_MACHINE содержит только значения по-умолчанию и информацию об установке, которая не должна меняться.
Редактирование вашего ключа реестра «Known IDE Packages»
Штатный редактор реестра Windows не умеет перемещать значения ключей между ключами реестра, поэтому мы не сможем использовать его для удобного редактирования конфигураций. Вы можете использовать любой другой редактор реестра, но я обнаружил, что простой текстовый редактор будет работать просто отлично.
Начните работу с экспорта ключа реестра HKEY_CURRENT_USERSoftwareBorlandBDS4.0Known IDE Packages в файл на диске. Если вы собираетесь использовать редактор реестра, который не поддерживает Unicode, то измените тип файла при сохранении с “Registration Files” на “Win9x/NT4 Registration Files” до нажатия на кнопку «Сохранить». Это создаст файл ANSI вместо Unicode. Я же использовал редактор текста самой IDE, ему подойдёт любой формат.
Откройте экспортированный ключ реестра в текстовом редакторе и начните его редактировать. Вам понадобится немного внимания и я рекомендую перепроверять всё, прежде чем вы используете изменённый файл. Строки в квадратных скобках являются ключами, а строки в кавычках являются значениями.
Давайте начнём с перемещения всех пакетов под «Known IDE Packages» в отдельный под-ключ. Это позволит вам легко сделать IDE с практически “нулевым отпечатком” (вспомните, что пакеты в самом ключе «Known IDE Packages» не могут загружаться выборочно, поэтому мы перемещаем их, чтобы позволить выборочную загрузку).
Сделайте копию этой строки около начала файла:
[HKEY_CURRENT_USERSoftwareBorlandBDS4.0Known IDE Packages]
и расположите её сразу под существующей строкой. Вероятно, вы захотите добавить несколько пустых строк между оригиналом и копией, чтобы файл было проще читать. Теперь измените копию, чтобы она выглядела так:
[HKEY_CURRENT_USERSoftwareBorlandBDS4.0Known IDE PackagesIDECore]
Заметьте, что мы добавили строку “IDECore”. Файл должен теперь начинаться примерно так:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERSoftwareBorlandBDS4.0Known IDE Packages] [HKEY_CURRENT_USERSoftwareBorlandBDS4.0Known IDE PackagesIDECore] $(BDS)BinBorland.Caliber.IDE100.bpl ……
Как вы можете догадаться, этим простым действием мы переместили все пакеты ключа «Known IDE Packages» в ключ «Known IDE PackagesIDECore».
Чтобы использовать этот модифицированный файл реестра, мы импортируем его. Убедитесь, что вы сохранили изменения на диск и вернитесь в редактор реестра. Перед тем, как импортировать файл, мы переименуем существующий ключ «Known IDE Packages» — это будет нашей резервной копией оригинальных данных. Выберите его в дереве редактора реестра и нажмите F2. Измените имя ключа на “Known IDE Packages.Save1” и нажмите Enter. Теперь вы можете использовать команду меню File | Import и выбрать .reg-файл, который мы редактировали. Или же вы можете просто дважды щёлкнуть по .reg-файлу в Проводнике Windows. После завершения импорта вы увидите новый изменённый ключ «Known IDE Packages». Если вы развернёте его, то увидите, что в нём есть под-ключ IDECore, которого раньше не было. Вы также увидите, что в самом ключе «Known IDE Package» больше нет значений. Если вы захотите восстановить оригинальную конфигурацию, то просто удалите ключ изменённый «Known IDE Packages» и переименуйте ключ «Known IDE Packages.Save1» обратно в «Known IDE Packages».
Чтобы проверить эффект от изменения — откройте командную строку. Она позволит нам проверять различные варианты без необходимости создания кучи ярлыков. Как только вы настроите свои конфигурации — вы можете создать к ним ярлыки позже.
В командной строке смените каталог на папку исполняемых файлов BDS (командой: cd «C:Program FilesBorlandBDS4.0bin»).
Сначала давайте проверим нашу нулевую конфигурацию. Если мы передадим в –p несуществующий ключ, то мы просто ничего не загрузим. Поэтому наберите в командной строке такую команду:
BDS –pZero
и смотрите как быстро вскочет IDE! Однако, в этой конфигурации в IDE не загружено никаких полезных пакетов, так что она довольно бесполезна — разве что для редактирования текстовых файлов, но было забавно увидеть, как быстро может запуститься пустая оболочка IDE! Теперь давайте попробуем минимальную personality Delphi. Закройте среду и перезапустите её с такой командной строкой:
BDS –pDelphi
Это займёт больше времени, но не много. Поскольку мы переместили основные пакеты в под-ключ IDECore и не указали его в командной строке, то многие вещи будет пропущены. Затем, давайте закроем среду и попробуем:
BDS –pIDECore;Delphi
В этот раз среда начинает грузиться дольше и вы можете видеть, как грузятся пакеты. Сейчам это в точности эквивалентно конфигурации по-умолчанию для ярлыка «Borland Delphi for Microsoft Win32», который создавал установщик. И последней вещью, которую мы попробуем, будет:
BDS
Эта команда загрузит всё — ровно как это было до того, как мы начали делать изменения. Поскольку мы не указали ключ –p, то среда загружает всё подряд.
Конфигурация-пример
Теперь, когда мы узнали, как делать изменения конфигурации IDE, я покажу вам пример, как вы можете использовать эту технику для создания более тонких конфигураций. Щёлкните по ссылке ниже для просмотра полного варианта, который я создал для примера:
Sample Known IDE Packages
В этом примере я использую несколько подходов. Сначала я разбил каждую personality в ключи “core” и “extra” — в общем, я переместил реже используемые вещи в под-ключ “extra”, а часто-используемые — оставил. Затем, я поделил пакеты из ключа IDECore, который мы создали в нашей тренировке. В моём случае я оставил критические пакеты в IDECore, а менее важные пакеты я занёс в IDEExtras. Наконец, я поделил пакеты IDECore по функциональным категориям. Я переместил все пакеты, которые имеют отношение к Web-разработке, а также плагины ALM в их собственные под-ключи. Все эти изменения привели к разрастанию конфигурации с пяти вариантов до двадцати. Но суммарная функциональность осталась неизменной.
Я также отредактировал описания различных файлов пакетов, чтобы иметь описание для всех. По-умолчанию у многих пакетов вы увидите только “(Untitled)” — что не очень полезно при понимании того, что делает этот пакет.
Используя эту конфигурацию, я могу, например, создать ярлык к BDS.EXE с параметрами –pIDECore;Delphi и назвать его “Delphi Lite”, или –pIDECore;IDEExtras;Delphi;DelphiExtras и назвать его “Delphi Full”.
Этот пример должен дать вам идеи относительно того, как вы можете создавать свои собственные конфигурации среды и ярлыки, которые их использовали бы. Я надеюсь, что я дал достаточно информации, чтобы помочь искателям приключений начать экспериментировать. Если вы уже работали раньше с реестром, то для вам не будет здесь ничего сложного.
Заключительные мысли
Лично я считаю, что редактирование конфигурации среды под свои нужды — это вполне безопасная ситуация. Однако, поскольку существует неисчислимое множество комбинаций пакетов IDE, вы наверняка столкнётесь с ситуацией неверного поведения IDE в некоторых особых конфигурациях. Если вы столкнётесь с ситуацией, когда что-то не работает — пожалуйста, дайте мне знать. Вы сможете подтвердить аномалии конфигурации, сравнивая её с конфигурацией по-умолчанию. Просто имейте ввиду, что редактирование стандартных конфигураций официально не поддерживается — поэтому нет никаких гарантий.
Дополнительные примечания:
1. Ключ командной строки –p не работает с пакетами компонент, которые устанавливаются через ключ реестра “Known Packages”. В отличие от IDE-пакетов, пакеты компонент могут быть удалены и установлены в самой IDE.
2. Если вы хотите отключить отдельный пакет в реестре, есть несколько способов это сделать. Во-первых, вы можете просто удалить запись о пакете. Наверное, это самый неудачный способ, потому что вам нужно будет как-то восстановить этот ключ для отмены запрета пакета. Второй способ — удалить описание пакета. На самом деле это значение “Data”, ассоциированное с пакетом. Третьим способом (появился в BDS 2006) отключить пакет является редактирование описания так, чтобы первый символ описания был подчёркиванием, например: “_Assembly Browser Package”. Эти трюки позволят вам выборочно отключать пакеты без необходимости их удаления.
3. BDS имеет также ключ –r, который позволяет указать вам альтернативный профиль среды для загрузки — не только конфигурацию пакетов, но и других настроек среды, вплоть до путей поиска файлов и раскладок окон.
4. Раздел справки Delphi, описывающий ключи командной строки.


bds.exe.config (4,64 Кбайт, скачиваний: 243)
error.jpg (15,36 Кбайт, скачиваний: 844)

error1.png (23,85 Кбайт, скачиваний: 881)
