当前位置: 代码迷 >> SQL >> 【SQL】SQL2012离线帮助文档安装不上的处置手记
  详细解决方案

【SQL】SQL2012离线帮助文档安装不上的处置手记

热度:50   发布时间:2016-05-05 10:56:10.0
【SQL】SQL2012离线帮助文档安装不上的处理手记

注:解决方法在最后,心急的童鞋可以直接往下滚动。

我SQL实例装的是2008 R2版,由于该版自带的SSMS(Microsoft SQL Server Management Studio 管理工具)存在一些操蛋问题,例如:

- 文本编辑器中对矩形文本块(alt+鼠标左键选取)的操作支持不好,例如不能多行批量键入,块粘贴之类

- 复制结果集时,cell中的回车换行会变为两个空格,不能准确得到cell的值,这点尤为操蛋

于是我安装了独立版的SSMS 2014(https://www.microsoft.com/zh-CN/download/details.aspx?id=42299,点击【下载】后选择SQLManagementStudio_x64_CHS.exe),没错,用2014版的管理工具管理08R2版的实例,但独立版SSMS不带帮助文档,所以安装完成后,在帮助查看器中搜不到任何内容,很不方便,所以想着把帮助文档装上。本来想装08R2版的帮助,毕竟实例就是08R2,一切开发都要围绕这个版本,而新版本的帮助必然会多出一些新功能的文档,会造成干扰甚至误导,但找来找去始终找不到08R2的离线帮助,只好退而求其次,装2012版的帮助。本来可以直接使用帮助查看器自带的【联机安装内容】进行安装,但那个下载速度实在不能忍受,谁用谁知道,所以采用下载离线帮助,然后用【从磁盘安装内容】的方式进行安装,2012离线帮助下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=347

下载下来是个叫【SQLServer2012Documentation_June_CHS.exe】的自解压文件,双击→选择解压位置,得到目录【SQLServer2012Documentation_June_CHS】,如图:

其中【HelpContentSetup.msha】就是可供【从磁盘安装内容】时选择的msha文件,一路操作,到真正安装时必然弹出如下错误:

好吧,看日志(运行eventvwr.msc),果然有这么一条:

可是有屌用,遂找度娘,是有那么几条说这问题的,但都没说出什么所以然。不过也好,起码说明这个问题不是我一个人遇上,那就应该是一个共性问题,基本可以排除运行环境方面的原因。继续折腾。

在捣腾帮助管理器时,发现其中有个界面提到一个路径,如图:

按我理解,这里就是存储离线帮助的地方(后经研究,确定不是,这里应该只是MS自用的离线帮助安装包存储目录,帮助经过安装后,内容会被释放到C:\ProgramData\Microsoft\HelpLibrary\content\Microsoft\store,相当于软件安装包所在目录和软件安装目录的区别),在里面果然发现已经有一些HelpContentSetup.msha,抱着试一试的态度,在【从磁盘安装内容】时选择这些msha试了一下,没有报错,有戏,把msha文件拖进记事本,很好,能正常显示,是个html描述的文件,接下来就对比下载的HelpContentSetup.msha与HelpLibrary中的有什么不同:

这个过程是痛苦的,因为msha里面是引用别的html/xml文件,这些文件中又引用别的html/xml文件,最后引用到实实在在的帮助内容文件(cab包),整个是个文件引用链,每一个环节都可能是原因所在,我是把链子上相关的文件精简到只引用一个cab情况,仍然报错,考虑到会不会是cab包的版本、损坏之类的问题,又把正常的cab换过来,把相关href改了再试,问题依旧~NND,我就不信邪了,决定从链子的末端开始,逐步替换成能正常安装的内容,替换一环试一次,直到把HelpContentSetup.msha替换掉,总算正常了,说明TMD问题还就是出在msha上,既然锁定是这货,睁大眼睛也要把问题揪出来。还好msha内容不多,就那么几行,有问题的msha与正常msha有一些不同,包括innerText上的,标签顺序上的,我就对照正常msha逐行修改,改一次试一次,直到看到<span class="locale">zh-zn</span>:

你妹啊,zh-zn是个神马玩意儿,瞬间感到问题逮到了。上了一课,以后再揪MS问题的时候,切不可再忽略拼写错误这种弱智原因,编写这文档的这厮应该拖出来割JJ,操!失误不稀奇,但你TM都不带测试的么,你TM那么长时间了都没发现这个问题么,MS都TM养了些什么人。

有关语系/地区码的相关知识请参看:

http://zh.wikipedia.org/wiki/ISO_639-1

http://zh.wikipedia.org/wiki/ISO_3166-1

BTW,在知道原因后,再用HelpContentSetup.msha zh-zn为关键字去搜百度,TNND能搜到了,其实早有仁兄发现这个问题了,http://www.cnblogs.com/lipengzhou/p/3750815.html,百度你靠点谱行不行。

解决办法:用记事本把HelpContentSetup.msha打开,把zh-zn改为zh-cn,保存即可。

-文毕-