问题
在没有接互联网的 Win7/2008 R2 系统上安装 VS2012/2013,安装完成时提示:
安装已完成。
但是,并非所有功能均已正确安装。
下面列出错误都是类似这样:
Microsoft SQL Server 2012 管理对象(x64)
无法建立到信任根颁发机构的证书链。
……
分析
经过 Google 之后,查到微软知识库文章 KB2746268 。它解释这个错误是因为 VS 的安装包中有些组件的数字签名所对应的根证书没有安装。
微软现在自己的软件安装时都要强制检查数字签名的,数字签名验不过组件是装不上的(话说如果苹果也这么搞,就没有 XCodeGhost 了),所以之前安装的 VS 其实缺了很多组件。
在 WinXP 时代,根证书更新是以安全更新的方式提供的,可以直接从 Windows Update Catelog 网站下载。但是 Vista 开始,微软选择了一种独立的自动更新证书列表(CTL)的方案,即使禁用了 Windows Updates,照样能够每天更新根证书和吊销列表。对于断网的计算机,微软知识库 KB931125 提供了部署 CTL 更新的方法。