• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

安装Delphi2009后,弹出“key不能为空”问题的解决办法。

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
根据“杯具橙子&自言自语”(http://hi.baidu.com/rarnu/blog/item/8d8e74cf8cce543af8dc61a0.html)中描述,他是这样解决的。
今天装上了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了”。

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphi读写剪贴板的一些参考发布时间:2022-07-18
下一篇:
DELPHI2007安装ACTIVEX插件的方法发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap