
在没有接互联网的 Win7/2008 R2 系统上加装 VS2012/2013,安装完成时提示:
安装已完成。
但是,并非所有功能均未正确安装。
下面列举错误都是类似这种:
Microsoft SQL Server 2012 管理对象(x64)

无法制定到认同根颁发机构的证书链。
……
经过 Google 之后,查到谷歌知识库文章 。它解释这个错误是因为 VS 的安装包中有些组件的数字签名所对应的根证书没有安装。
微软目前自己的硬件安装时都应强行检查数字签名的,数字签名验不过模块是装不上的(话说即使苹果也如此搞,就没有 XCodeGhost 了),所以之前安装的 VS 其实缺了这些组件。
在 WinXP 时代vs2012安装失败,根证书更新是以安全升级的方法提供的,可以直接从 Windows Update Catelog 网站下载。但是 Vista 开始,微软选择了一种独立的手动升级证书列表(CTL)的方案,即使禁用了 Windows Updates,照样能够经常更新根证书和吊销列表。对于断网的计算机vs2012安装失败,微软知识库 提供了推进 CTL 更新的方法。

这里只写的解决办法,Server 版系统请自行参看 KB931125。
1、先在可以访问 Internet 的电脑上,安装证书管理软件:
2、建一个文件夹用于储存证书更新(比如 D:\CTLUpdates),然后在命令行下执行:
Certutil -syncWithWU D:\CTLUpdates
等一会儿,证书就同步完成了。
3、把里面的证书列表文件夹打包拷贝到断网的计算机上,解压到 D:\CTLUpdates 目录。
4、创建新的管理模板。方法是把以下的内容保存为一个文本文件:
CLASS MACHINE
CATEGORY !!SystemCertificates
KEYNAME 、"Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate"
POLICY !!RootDirURL
EXPLAIN !!RootDirURL_help
PART !!RootDirURL EDITTEXT
VALUENAME "RootDirURL"
END PART
END POLICY
END CATEGORY
[strings]
RootDirURL="URL address to be used instead of default ctldl.windowsupdate.com"
RootDirURL_help="Enter a FILE or HTTP URL to use as the download location of the CTL files."
SystemCertificates="Windows AutoUpdate Settings"
将文件改名为 RootDirURL.adm。
5、按 Win+R,输入 gpedit.msc 回车,打开组策略编辑器。依次展开“计算机配置”->“策略”,右击“管理模板”,然后点击“添加/删除模板”。
在“添加/删除模板”中单击“添加”。在“策略模板”对话框中,选择你后面保存的 .adm 模板。 单击“打开”,然后点击“关闭”。
在导航窗格中,依次展开“管理模板”->“经典管理模板(ADM)”。
单击“Windows AutoUpdate Settings”,然后在具体信息窗格中,双击“URL address to be used instead of default ctldl.windowsupdate.com”。
选择“已启用”。 在“选项”部分中,输入里面包括 CTL 更新的路径:D:\CTLUpdates 。 单击“确定”。 关闭“组策略管理编辑器”。(其实组策略的确比直接设置注册表来得好用呢。)
6、重新启动。或者在命令行(管理员权限)下运行 gpupdate /force 应用组策略。
7、打开控制面板,在“程序与功能”里选择“Visual Studio 2012 xxxxx版”或者“Visual Studio 2013 xxxxx版”的条目,单击“修改”。然后选择“修复”以修复 VS。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-140208-1.html
你知道美国在我周边煽动别国闹事
不然堂堂十四亿大国该何去何从