NSIS错误(NSIS Error)的原因和解决方法总结

warning: 这篇文章距离上次修改已过223天,其中的内容可能已经有所变动。

NSIS ErrorNSIS Error

NSIS 是一个脚本安装程序制作系统,通过编译脚本来生成安装程序。安装程序的作用就是帮助用户完整软件的安装。由于大型软件的安装过程不仅仅涉及复制文件,还有操作注册表甚至系统服务等,不可能手工操作,于是就有了安装程序。安装程序通常都是一个独立的 exe 文件。此文件不仅仅将软件所需的所有文件压缩在内,而且还包括一个向导界面及安装时要执行的操作指令,可以完成复制文件、写入注册表、创建系统服务等,以及很多其他操作。

使用 NSIS 生成的安装程序默认开启了自校验功能,以防止安装程序被非法修改或者用户使用损坏的安装程序来安装软件。通常情况下,NSIS 错误的描述是这样的:

NSIS 创建的安装程序的错误信息:
Installer integrity check has failed. Common causes include
incomplete download and damaged media. Contact the
installer's author to obtain a new copy.
More information at:
http://nsis.sf.net/NSIS_Error
中文翻译:
安装程序完整性检查失败!
常见原因包括下载不完整或介质损坏等。
联系安装程序的作者以获得一个新的副本。
更多信息:
http://nsis.sf.net/NSIS_Error

使用 NSIS 2.35 之前版本创建的安装程序,NSIS 错误描述是这样的(注:使用 NSIS 2.35 之前版本创建的安装程序,指安装程序的制作者在制作安装程序时使用的 NSIS 版本,与安装程序自身无关。):
The installer you are trying to use is corrupted or incomplete.
This could be the result of a damaged disk, a failed download or a virus.
You may want to contact the author of this installer to obtain a new copy.
It may be possible to skip this check using the /NCRC command line switch
(NOT RECOMMENDED).
中文翻译:
你正在使用的安装程序不完整或者已损坏。
这可能是磁盘损坏、下载失败或病毒导致的结果。
你可能需要联系安装程序的作者获取一个新的副本。
或许也可以通过命令行开关 /NCRC 跳过检查(不推荐)。

NSIS 是国外软件,以上是官方原版的错误提示,但实际中遇到的 NSIS 错误提示文字也有可能是其他内容。由于 NSIS 为免费开源软件,所有不排除有编程爱好者修改 NSIS 源码中这段错误文字后重新编译了自己专用的 NSIS 版本来创建安装程序。NSIS 的自校验检查可以在生成安装程序的时候使用 CRCCheck off 关闭检查,这样安装程序不会进行检查,自然也不会弹出“NSIS Error”(即“NSIS 错误”)。NSIS 还提供了另外一种方式,也就是通过命令行参数 /NCRC 来跳过 CRC 检查。这是对通常情况下创建的安装程序,也就是默认启用了 CRC 检查的安装程序提供的一个万不得已的启动方式。如今的图形界面大行其道,鼠标双击代替了敲击命令,使得很多人对命令行参数一知半解。在 Windows 下,直接双击执行 exe 是不附带任何参数的,故加参数运行只能间接实现。给程序添加参数运行有两种方式:1.命令行直接添加;2.创建快捷方式后在目标栏添加。

info:1.通过命令行添加参数

官方提到的使用命令行参数 /NCRC 的办法:通过开始菜单打开“运行”对话框并输入 cmd 并点确定,即弹出命令提示符。Windows Vista、Windows 7 可以在开始菜单搜索框直接输入 cmd 按回车,也可以通过 Windows 徽标键 + R 来打开运行对话框(Windows 徽标键位于 Ctrl 和 Alt 之间,但并不是每个键盘都有)。将安装程序用鼠标左键拖到命令行窗口,即自动出现路径,带空格的路径自动加引号,然后在路径后面输入至少一个空格和 /NCRC,NCRC 四个字母必须全部大写。

info:2.通过快捷方式添加参数

在安装程序上面点右键,选择“创建快捷方式”。然后在创建出来的快捷方式文件上点右键,选择属性,在其“目标”栏的原有路径后面加上空格和 /NCRC,完后点击确定。然后双击快捷方式即可启动安装程序,此时将会使用 /NCRC 参数启动安装程序。

warning:注意:

方法1中,对于带空格的路径,将文件拖到命令行上,路径两侧会自动添加引号。方法2在快捷方式目标栏的带空格路径后面添加 /NCRC 时,必须注意路径两侧的引号。方法2中默认情况下这个引号是存在的,但添加参数时切不可删除,路径仍需使用引号包括,并且参数与路径之间至少使用一个空格分隔。总之:路径与参数之间必须用英文空格分隔,而且后面的 /NCRC 也必须是英文字符,字母必须全部大写。在输入时一定要确保输入法已经关闭,否则可能输入错误。

官方不推荐使用以上命令行参数来执行安装程序,除非任何办法都不能解决问题时可考虑使用 /NCRC 参数跳过文件校验启动安装程序,但这并不是完美的解决办法。如果安装程序本身已经严重损坏或并未下载完成,那么即使你使用 /NCRC 来启动安装程序,跳过了自校验,只能保证安装程序可以启动,并不能保证安装过程不会出现错误,或者安装可以成功,但由于数据损坏导致软件无法使用。

下面这些情况,可尝试通过 /NCRC 来安装,例如:电脑中病毒,安装包被感染,而后使用杀毒软件清除了安装程序的病毒;又如:下载工具下载到 99.9% 而无法下载成功,此时可将未下载完成的文件扩展名改名为 exe……这些情况下可以认为安装程序数据基本完整,可尝试使用 /NCRC 的命令行参数来解决。

该错误提示从根本上讲是文件损坏,但文件损坏的原因多种多样,也有可能是某些人提到的硬盘坏道,或者内存问题导致系统读取的数据不完整(文件可能并未损坏),更有可能是其他不确定的原因。

来源:https://tieba.baidu.com/p/1813727179

添加新评论