博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安装Delphi2009后,弹出“key不能为空”问题的解决办法。
阅读量:5923 次
发布时间:2019-06-19

本文共 1137 字,大约阅读时间需要 3 分钟。

根据“杯具橙子&自言自语”( )中描述,他是这样解决的。
今天装上了Delphi2009 Update4,发生了一件比较麻烦的事
启动时提示“值不能为空,参数: key”。
原本以为是序列号的问题,但是我把光盘放到另一台电脑上安装,完全正常
换言之,这个“key”并非是指License Key
可能的出错范围一下子被放大了,只好硬着头皮去看D2009那复杂的Stack Trace
发现Stack的最上层是dotnetcoreide120.bpl抛出的异常,初步怀疑是这个bpl没有成功的安装
然后我试图把这个bpl拷去system32,以便让程序识别,但是无效
于是如此折腾了一天,最后只能怀疑是.NET Framework损坏了
于是删掉了.NET Framework,随便删掉了VS2008,再重新安装.NET2.
0和D2009,就一切正常了
问题到这里还没有结束,我又重新装上了VS2008,发现也是D2009和VS2008都能正常运行
这个问题又变得复杂了起来。通过日志文件,终于找出了差异
原来问题是发生在VS2008 SP1上,我原先的系统打上了VS2008 SP1,并安装了VS SDK
SP1中有一项,是把.NET Framework 
2.0更新为.NET Framework 
2.0 SP2
就是这个SP2出了问题,其实不更新SP2,也是一样的,并不会对VS2008造成影响
更重要的是,不更新SP2,D2009就能正常安装
.NET2.
0 SP2的更新中,会删掉一个GUID里的key值,但这个值恰恰是D2009所需要的
于是想了个简单的办法,先把GAC里,.NET2.
0有关的东西卸载掉
然后去WINDOWS\Microsoft.NET\Framework\v2.
0.50727目录下,把里面的文件都备份出来
接着,更新VS2008的SP1直到它完成,然后把备份的文件覆盖回去,再把所有的dll拖进GAC
这样就搞定了,可以正常的安装使用D2009了,与此同时,VS2008也能正常使用
最后,换个角度思考一个小问题,为什么在VS2008打上SP1后,D2007能正常安装使用
而D2009就不行呢?难道说D2007使用的.NET 
2.0可以是任意版本,
而D2009使用的.NET2.
0却不允许打补丁,这不就等于拒绝进化么?
为什么D2009不会自动判断.NET的版本,然后再决定调用的内容呢?
另外再说一不大不小的事情,就是装了.NET Framework之后,千万别使用优化大师去清理注册表
不然的话,.NET会被它损坏,很多问题找都找不到,只能重装 
而我实际上只是“在bin目录下,把bds.exe.config改名,就OK了”。

转载地址:http://tvivx.baihongyu.com/

你可能感兴趣的文章
白帽子讲Web安全
查看>>
[转载]RestSharp.WindowsPhone调用Rest服务
查看>>
Sqlserver:Sqlserver数据库的脚本生成器2.1
查看>>
如何制作chrome扩展程序
查看>>
iis7应用程序池经常自动停止如何解决?
查看>>
Qt之对话框设计——(1)标准对话框
查看>>
BinaryReader和BinaryWriter的leaveOpen参数 z
查看>>
Pgsql 里面 COALESCE的用法
查看>>
无法删除文件提示找不到指定文件导致文件无法删除的解决方法
查看>>
struts2在web.xml中配置详情
查看>>
第一章 目录
查看>>
(PPT)Linux服务器基础
查看>>
Loadrunner监控windows系统“找不到网络路径”问题解决
查看>>
怎么说, 开发会很乐意去主动修改bug?
查看>>
[开机启动]Linux开机自启和运行级别
查看>>
Java枚举类
查看>>
Codeforces Round #428 (Div. 2) D. Winter is here 容斥
查看>>
h5学习笔记:vuethink 配置
查看>>
25种提高网页加载速度的方法和技巧
查看>>
认证 (authentication) 和授权 (authorization) 的区别
查看>>