在紫金飞鸿看到二篇文章,
照章优化一下,
爽呆了,
delphi 2005,象delphi 5一样快......内存占用极小,速度极快。
--------------------------------------------------
Delphi 2005纯WIN32开发环境
不管 Borland 怎么去说, Delphi 2005 并不需要 .NET.
如果您是一位 Delphi Win32 开发者, 且不希望 Delphi 2005 被 .NET 所污染, 那么本
文可以教您如何从 Delphi 2005 中去除 .NET .
本文所述内容已在 Delphi 2005 设计师版测试通过. 我写了两个案例: 一个是针对全新
安装 Delphi 2005, 另一个是针对已经安装了 Delphi 2005 的情况.
下面是两个去除 .NET 的 Delphi 2005 安装方法, 第三个是一个附加的建议:
全新安装 Delphi 2005
从已安装的 Delphi 2005 掘弃
如何节省内存与加载时间
案例1. 全新安装 Delphi 2005. 步骤 1.
这里指导如何从 Delphi 2005 中去除 .NET 依赖:
步骤 1. 安装 Delphi 2005
当我们试图安装 D2005 (译注: 往后 Delphi 2005 简称 D2005), 安装程序将进行一连
串安装前必需条件的检查. 我将告诉您如何绕过该检查, 但首先我得做一个澄清: 安装
D2005 之前有两个东西还是必须得安装的:
.NET Framework (.Net 框架). 如果我们不安装它, D2005 将不能成功安装完成 (别担
心, 安装完 D2005 之后我们很快会卸载它). 因此我们得先安装它 (它位于 D2005 第一
张安装盘上: dotnetRedistdotnetfx.exe).
MS Help 2 engine (微软第2代帮助引擎). 这是 D2005 帮助系统所必需的. 遗憾的是,
它并不是一个独立的产品 (它被捆绑在其它产品中, 如 .NET Framework SDK, Visual
Studio.NET, 及 Office XP Developer). 所以我们得安装 .NET Framework SDK 的文档
部分(包含了 MS Help 2 engine). 我们现在安装它 (位于 D2005 第一张安装盘:
dotnetSDKsetup.exe). 记住, 仅需安装文档部分 (不要选中 "Development kit" 与
"Samples"). 一旦完成该安装, 我们就可以删除 100 MB 的 .NET 文档 (因为我们目的
只是要帮助引擎). 删除如下内容:
C
ocuments and SettingsAll UsersApplication DataMicrosoft
HelpMS.NETFrameworkSDK*.*
C
rogram FilesMicrosoft.NETSDKv1.1Docs*.*
下面让我们正式开始 Delphi 2005 的安装 ...
运行 D2005 安装程序 (位于 D2005 CD1: Installsetup.exe).
稍等片刻您将看到一个弹出的模式窗口, 说一些 "Borland Delphi 2005 requires
..." 之类的废话. 让我们干掉这个窗口:
打开 (Ctrl + Alt + Del) Windows 任务管理器. 您可以找到3个占用以下相似内存的进
程:
msiexec.exe ... 3,488 K
msiexec.exe ... 4,476 K
msiexec.exe ... 14,036 K
结束 4,476 KB 这个进程... 完美的胜利! 需求检查窗口已被去除, 我们可以继续安装
了!
继续. 您将被询问安装类型 (Complete 或 Custom). 选择Custom (自定义).
继续. 您将看到 3 个选项. 只选中 Win32:
[ ] Borland Delphi 2005 for the Microsoft .NET Framework
[X] Borland Delphi 2005 for Microsoft Win32
[ ] Borland C#Builder 2005 for the Microsoft .NET Framework
注意: 这存在一个普通性的bug在 Delphi 2005 , 就是如果您只选择安装 Win32 的话,
重构技术将不能被使用. 希望在十二月的补丁中可以修复该问题.
继续. 您将看到一个功能选择树. 选择您所需要的.
继续. 将询问您是否安装 Rave Reports. 如果您需要就安装它.
一旦安装结束, 卸载掉 .NET Framework, 因为我们不再需要它了.
注意: 这时还不要运行 Delphi 2005 . 它不会正常运行的. 如果您运行了它, D2005就
会创建默认的注册表值在 HKEY_CURRENT_USERSoftwareBorlandBDS3.0, 那么我们后
面的设置就会受到影响. 如果您已经运行到 D2005, 则需要打开注册表并删除
HKEY_CURRENT_USERSoftwareBorlandBDS3.0.
我们差不多完成了. 最后的步骤就是去除.Net 的关联. 请看下一步.
案例1. 全新安装 Delphi 2005. 步骤 2.
我们继续讨论如何从 Delphi 2005 去除 .Net 部分. 一旦 Delphi 2005 安装完成 (步
骤 1), 我们就将完全从电脑中去掉 .Net...
步骤 2. 去除 .NET 部分
可以这么说, Delphi 2005 就是一个普通的 Win32 IDE (就像 Delphi 7), 只是在启动
时加载了一些与 .NET 相关的模块 (现在您该明白为什么它仍然非常快(去掉 .Net 后))
. 我敢打赌Borland不会承认这种说法, 在如今这个 ".NET 时代", 任何有关Win32的声
音都是在犯政治错误. ;-) 我们要得到纯Win32 IDE, 就得去掉这些 .NET 相关模块.
这些模块位位于注册表项 [HKEY_LOCAL_MACHINESoftwareBorlandBDS3.0Known
IDE Packages] 下面.
要禁用这些模块, 只需删除它的这些注册表数据.
.NET 需要的模块 (所以必须禁用)
[HKEY_LOCAL_MACHINESoftwareBorlandBDS3.0Known IDE Packages]
$(BDS)Bincaliberide90.bpl
$(BDS)Binsoapide90.bpl
$(BDS)Binasmview90.bpl
$(BDS)Bindbkdebugproide90.bpl
$(BDS)BinTGIDE90.BPL
$(BDS)Bincompro90.bpl
不是 .NET 需要的模块 (您也可以保留它们)
[HKEY_LOCAL_MACHINESoftwareBorlandBDS3.0Known IDE Packages]
$(BDS)Binvclmenudesigner90.bpl
$(BDS)Binwin32debugproide90.bpl
$(BDS)Binhtmide90.bpl
$(BDS)Biniteidew3290.bpl
$(BDS)BinSrcManIDE90.bpl
$(BDS)Bintodoide90.bpl
$(BDS)Binhtmlhelp290.bpl
$(BDS)Binidefilefilters90.bpl
$(BDS)Binstartpageide90.bpl
$(BDS)Binrefactoride90.bpl
$(BDS)Bindbkdebugide90.bpl
$(BDS)Binexceptiondiag90.bpl
$(BDS)bindeployide90.bpl
$(BDS)Binplugview90.bpl
$(BDS)Bincoreproide90.bpl
$(BDS)BinIDETools90.bpl
$(BDS)Binunittestide90.bpl
$(BDS)Binhistoryide90.bpl
$(BDS)Binhtmltidy90.bpl
$(BDS)BinHTMLFmt90.bpl
$(BDS)Binmlcc90.bpl
$(BDS)Bindelphivclide90.bpl
$(BDS)Bindelphicoreproide90.bpl
$(BDS)Binwin32debugide90.bpl
$(BDS)Binhtmlide90.bpl
$(BDS)Bindelphide90.bpl
$(BDS)Bincomstd90.bpl
$(BDS)Binmtspro90.bpl
$(BDS)Bindelphipro90.bpl
$(BDS)Binmtsent90.bpl
以上这些不是 .NET 所需的模块, 您没有必要全部保留它们. 在我的计算机上, 我只保
留了以下几个模块:
[HKEY_LOCAL_MACHINESoftwareBorlandBDS3.0Known IDE Packages]
$(BDS)Bincoreproide90.bpl
$(BDS)Bindelphide90.bpl
$(BDS)Bindelphivclide90.bpl
$(BDS)Binhtmlhelp290.bpl
$(BDS)Bintodoide90.bpl
$(BDS)Binvclmenudesigner90.bpl
$(BDS)Binwin32debugide90.bpl
$(BDS)Binwin32debugproide90.bpl
步骤 3. 恭喜.
恭喜!! 您又重新成为了一个快乐的 Win32 开发者!!
案例 2. 从已安装的 Delphi 2005 中掘弃
如果您已经安装了 Delphi 2005, 而您又非常非常的不想要 .Net, 下面内容教您如何
"解放" Delphi:
卸载 .NET Framework, .NET Framework SDK, 以及 Visual J# .NET
Redistributable.
打开注册表并删除 HKEY_CURRENT_USERSoftwareBorlandBDS3.0 分支.
执行案例1的步骤2.
注意: 一旦您完成了去除 .Net 的安装工作, 下面的内容可以指导您如何使 D2005 加载
时更快, 且节省内存:
如何节省内存与加载时间
一旦您从 Delphi 2005 去除了 .NET 部分, 您可以加快 D2005 的运行速度.
为实现更深层次的优化, 我建议您停用您并不使用的设计时包 (这也 .NET 无关, 但可
以很好的节省内存与加载时间):
运行 Delphi 2005 并点击菜单 Component->Install Packages...
取消选择您从不使用的包. 我习惯只保留 "Borland Standard Components",
"Borland Database Components" 及其它少许包.
选中 Default 复选框并点击 OK.
---------------------------------------------------------------------------------------
加速 Delphi 2005 for win32
看下面的文字之前,确定你已经装了Delphi 2005的Update 1了
-r参数对D2005也适用
简单地说,就是bds.exe -rfeuvan,然后运行一遍退出
(bds.exe在哪里请自己找)
这样将在注册表生成一个HKCU-SOFTWARE-Borland-feuvan
分支的内容将是从HKLM-SOFTWARE-Borland-BDS复制的
然后你可以根据自己的需求改变HKCU-SOFTWARE-Borland-feuvan的内容
设置一个适合自己的Delphi2005,是不是很cool,呵呵
比方说,我们就可以有bds.exe -rwin32和bds.exe -rdotnet。;-)
它们用不同的注册表分支,然而展现在你面前的会是两个截然不同的界面
当然,它们本质上都是bds.exe
HKCU-SOFTWARE-Borland-feuvan-3.0-Known IDE Packages里,
我保留了如下的键值(一个注册表文件,自己改改然后用好了)
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareBorlandfeuvan3.0Known IDE Packages]
"$(BDS)Binvclmenudesigner90.bpl"="(Untitled)"
"$(BDS)Binwin32debugproide90.bpl"="(Untitled)"
"$(BDS)Bin odoide90.bpl"="Borland ToDo"
"$(BDS)Binhtmlhelp290.bpl"="Borland HtmlHelp Viewer"
"$(BDS)Bincoreproide90.bpl"="Core IDE Pro Package"
"$(BDS)Bindelphivclide90.bpl"="Delphi VCL Designer IDE Package"
"$(BDS)Binwin32debugide90.bpl"="(Untitled)"
"$(BDS)Bindelphide90.bpl"="Delphi Win32 IDE Personality"
"$(BDS)Binmlcc90.bpl"="Markup Language Code Completion Package"
"$(BDS)Biniteidew3290.bpl"="Borland Integrated Translation Environment for Win32"
"$(BDS)Bin
efactoride90.bpl"="Borland Core Refactoring Package"
"$(BDS)Binplugview90.bpl"="Pluggable Tree View Package"
"$(BDS)BinIDETools90.bpl"="Build Tools"
我发现这样的组合足以写win32/vcl,而且退出的时候,不会有xxx出错,然后一个zombie process留在进程里,或者是不断报错。说实话,即使打了Update1之后,2005仍然给人buggy的感觉。
启动Delphi2005,在Component-Install Packages,在弹出的新窗口中,把所有你不需要的Design Packages前的勾去掉。我就留了Borland Standard Component和Indy 10。
现在启动Delphi 2005只需要两秒,而且没有rtl90.bpl出错,bds.exe内存访问出错这样烦人的bug了。
至于.Net Application,我想我到要写的时候还是开VS2003好了。
btw,召唤一下集成Update1的Delphi2005,装Update1居然要原来的cd,ft,而且它放出的update1里解出来的xxxxxx.msp居然不支持administrator installation。
--------------------------------------------------------------------------------
希望不要怪我帖与cnvcl专家包无关的帖子,我欣赏cnvcl,喜欢在这里交流。