下面是网文摘录:
作者:蒋晟
链接:https://www.zhihu.com/question/39073707/answer/79587120
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
问题不成立,和其他组件一样,vc运行库应该是被打包到安装程序里面的,没有打包用到的文件说明安装程序作者没有尽到责任。软件装完都不能运行,这软件还想卖得出去?
你的车在路上跑爆了胎难道要找高速公路收费站补胎么?操作系统不过是让程序跑的一个平台而已,没有修正安装程序bug的业务。用户会用脚投票,安装程序有bug的作者的产品声誉会比较低,赚的钱会比较少,这个是正常的优胜劣汰过程,惯着那些忘记在一般人电脑上测试自己的安装程序的作者,对于整个操作系统的生态没有好处。
而且就算微软做了这个功能,作为软件作者你敢不经过测试就让自己的软件绑定最新的运行时?
微软的VC6运行时让一堆VC5程序挂掉。那时候还没有在线升级,是用户安装新的使用了VC6运行时的软件。之后VC运行时就在文件名里加版本号,大版本不同的VC运行时之间互相独立互不兼容,当然也不会有VC6和VC5这样的冲突。
微软的VC2005 ATL安全补丁在程序路径名包含特定字符的时候会造成程序启动时崩溃(安装KB2538242后,在目录名包含%的目录下双击运行MFC程序直接crash)。
作为医疗软件的作者来说,我这里是在内部测试完才升级运行时的,而且软件就绑定到我测试过的那个运行时版本,客户机上安装的新版的运行时我都当不存在,因为程序挂掉延误诊治的话真的会出人命。病人是不会等下一个微软补丁礼拜二的。
说真的,连VC运行时没打包这么容易抓的问题都漏过的程序员,你信得过人家只漏掉这一个依赖项?VC运行时装完了,DirectX要不要装?DirectX装完了,Windows Media SDK要不要装?Windows Speech Platform要不要装?32位版本的装完了,64位的要不要装(Microsoft Update自己还有bug,32位和64位的VC运行时分不清,用户下载到的有时并不是正确的VC运行时版本,参考Windows Update KB2538242 or KB2538243 offered repeatedly)?为什么软件作者自己的本职工作要扔给用户和微软来做?
编辑于 2019-05-12
|