`
yejian235
  • 浏览: 22720 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

NSIS 使用技巧

 
阅读更多
1. 在安装过程中显示DetailPrint调试信息

DetailPrint默认是不显示的,如果要让其print的信息显示,需在NSIS的脚本起始处添加 ShowInstDetails show

Name "nsExec Test"

OutFile "nsExec Test.exe"

ShowInstDetails show

Section "Output to variable"
    nsExec::ExecToStack '"${NSISDIR}\makensis.exe" /VERSION'
    Pop $0 # return value/error/timeout
    Pop $1 # printed text, up to ${NSIS_MAX_STRLEN}
    DetailPrint '"${NSISDIR}\makensis.exe" /VERSION printed: $1'
    DetailPrint ""
    DetailPrint "       Return value: $0"
    DetailPrint ""
SectionEnd


2. NSIS中 +2, +3等跳转到底是跳转几行?

一直对NSIS中条件跳转 +2,+3等比较模糊,即使当时弄清楚了,过段时间又忘了。现做一个test,将结果记下。

IfFileExists D:\SA\test\testdirectory\*.* 0 +1 是判断testdirectory是否是一个目录,若是,则执行0,若不是,则执行+1。

测试条件:不存在testdirectory目录。
Name "test"
OutFile "Test.exe"

ShowInstDetails show

Section "test"
    DetailPrint "Function readConfig"

    IfFileExists D:\SA\test\testdirectory\*.* 0 +1
    DetailPrint "IfFileExists +1"
    DetailPrint "IfFileExists +2"
    DetailPrint "IfFileExists +3"
    DetailPrint "IfFileExists +4"
SectionEnd


(1)IfFileExists D:\SA\test\testdirectory\*.* 0 +1

执行结果为:

IfFileExists +1
IfFileExists +2
IfFileExists +3
IfFileExists +4

(2)IfFileExists D:\SA\test\testdirectory\*.* 0 +2

执行结果为:

IfFileExists +2
IfFileExists +3
IfFileExists +4

(3)如果将脚本改为:
Name "test"
OutFile "Test.exe"

ShowInstDetails show

Section "test"
    DetailPrint "Function readConfig"

    IfFileExists D:\SA\test\testdirectory\*.* 0 +3
    DetailPrint "IfFileExists +1"



    DetailPrint "IfFileExists +2"
    DetailPrint "IfFileExists +3"
    DetailPrint "IfFileExists +4"
SectionEnd

预期的执行结果为:

IfFileExists +2
IfFileExists +3
IfFileExists +4

但实际的执行结果却为:

IfFileExists +3
IfFileExists +4

可见,空行在编译后会被滤掉,并不会影响+3所影响的行数。



3. NSIS中禁止Silverlight自动更新

Silverlight 安装后默认是自动更新的。百度百科中 更改更新设置 一节(http://baike.baidu.com/view/904726.htm)

  右键单击Microsoft Silverlight当前显示的内容,然后选择“Silverlight配置”。
  选择“更新”选项卡。
  选择以下某个选项:
  (0)自动安装更新(推荐) - 如果选中此选项,您的计算机将自动安装最新的修补程序、全新的功能以及升级程序,从而保持计算机处于最新状态。这是 Microsoft Silverlight 的默认设置。
  (1)检查更新,但是让我选择是否下载和安装更新 - 如果选中此选项,则可以下载更新并将其安装到您的计算机上时,系统将向您发出通知。
  (2)从不检查更新(不推荐) - 您将不会收到有关任何修补程序(包括安全修补程序)、功能或升级程序的通知。
  在企业环境中,管理员可以配置组策略来防止 Microsoft Silverlight 自动更新。可以创建一个注册表项 HKLM\Software\Microsoft\Silverlight,其值名称为 UpdateMode,值类型为 DWORD,给定的值为 0x00000002。此设置将指示计算机不检查自动更新。

Silverlight在安装后,注册表中已存在更新设置的注册表项:UpdateConsentMode.其默认值为:0,自动安装更新。我们可以将它改为2.

    # The Silverlight's AutoUpdate is on by default(0x0). Change it to disable mode(0x2)
    ${If} ${RunningX64}
        WriteRegDWORD HKLM "SOFTWARE\Wow6432Node\Microsoft\Silverlight" "UpdateConsentMode" 0x2
    ${Else}
        WriteRegDWORD HKLM "SOFTWARE\Microsoft\Silverlight" "UpdateConsentMode" 0x2
    ${EndIf}



4. NSIS中如何记录Log?

(1)可以通过插件:

比如NSISLog plug-in,LogEx plug-in等。一般LogEx比较常用。

(2)NSIS内置支持Log功能

NSIS内置是支持Log功能的,但是官方下载的NSIS安装文件(比如 nsis-2.46-setup.exe)中并不包含Log功能(目的是为了减小NSIS文件大小)。

你可以下载NSIS的源码,重新编译NSIS生成exe,编译时要对编译命令行做一些设置:
scons NSIS_CONFIG_LOG=yes PREFIX=C:\somewhere install-compiler install-stubs

另外,如果嫌自己编译太麻烦,可以下载已编译好的patch,替换NSIS安装目录下的相应文件(参考http://nsis.sourceforge.net/Special_Builds,下载“Download advanced logging build”下的patch)。解压后覆盖NSIS安装目录“C:\Program Files (x86)\NSIS”下的相应文件(参考http://stackoverflow.com/questions/861297/saving-nsis-install-log)。



5. NSIS 检测Desktop-Experiemce状态并安装

WinServer 2008的Desktop Experience不是默认安装的。可以使用PowerShell的cmdlet命令检测他的安装状态,若没有安装,则安装之。

1. 可以使用get-command命令加上 通配符参数 来获取Feature具体名字。



2. 使用Get-WondowsFeature 可获取Feature的安装状态,如果不带参数则可获取所有Feature的安装状态。若该Feature已安装,则其前面会带有一个[X]标志。



3.在NSIS中,可以使用nsExec来执行PowerShell程序来完成检测和安装。
分享到:
评论

相关推荐

    NSIS使用详细文档.doc

    NSIS使用详细文档 打包工具 免费的哦

    NSIS使用教程档.zip_nsis

    这是关于安装打包程序NSIS使用的文档。

    软件打包NSIS使用教程

     对于制作NSIS的使用教程,蓝色网际是NSIS方面的专家,她的《NSIS帮助文档》就是一本NSIS的圣经,而对初学者来说,最头疼的莫过于一大堆看不懂的代码,对他们来说无异于一本天书。缘于此,特草此基础教程,希望NSIS...

    使用NSIS打包说明

    使用NSIS打包软件 NSIS简介: 杭州博客网?3uA(yT$G9t NSIS 是“Nullsoft 脚本安装系统”(Nullsoft scrīptable Installation System)的缩写,它是一个免费的 Win32 安装、卸载系统,它的特点:脚本简洁高效;系统...

    NSIS软件使用教程

    快速链接: FAQ - 常见问题列表 NSIS Wiki - 例子、函数、指南、插件、软件等等

    NSIS使用教程及常见问题个人笔记

    NSIS使用教程及常见问题及解决办法 加个人笔记,非常详细,

    NSIS程序打包使用说明

    NSIS程序打包使用说明、NSIS程序打包使用说明

    NSIS使用教程

    NSIS 是“Nullsoft 脚本安装系统”(Nullsoft scrīptable Installation System)的缩写,它是一个免费的 Win32 安装、卸载系统,它的特点:脚本简洁高效;系统开销小;当然进行安装、卸载、设置系统设置、解压文件...

    nsis使用教程文档

     对于制作NSIS的使用教程,蓝色网际是NSIS方面的专家,她的《NSIS帮助文档》就是一本NSIS的圣经,而对初学者来说,最头疼的莫过于一大堆看不懂的代码,对他们来说无异于一本天书。缘于此,特草此基础教程,希望NSIS...

    NSIS安装包制作教程详细版

    如何使用NSIS实现多目录安装设置 如何用NSIS在加入注册表 用NSIS 制作自己的安装程序 bluewind 的 wmp9 nsis安装脚本 NSIS安装脚本简明教程 取得winamp的NSIS脚本的教程 迅雷5.7.3.389 AYU增强版的安装脚本 ...

    使用NSIS制作安装文件

    使用NSIS制作安装文件 使用NSIS制作安装文件

    如何使用NSIS

    如何使用NSIS

    NSIS-Unicode.7z NSIS

    NSIS-Unicode.7z NSIS

    NSIS脚本实例NSIS脚本实例

    NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例NSIS脚本实例

    NSIS2.46汉化版NSIS2.46汉化版

    NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版NSIS2.46汉化版

    NSIS-中文帮助文档

    NSIS-中文帮助文档 NSIS 用户手册 新闻、信息、支持、例子、指南等可以到 http://nsis.sf.net 查看。 快速链接: FAQ - 常见问题列表 NSIS Wiki - 例子、函数、...MakeNSIS 的使用 选项 注意事项 。。。。。。。

    NSIS卸载保留文件夹

    NSIS卸载保留文件夹

    nsis打包工具3.0.8中文增强版

    1. nsis中文版本,自带教程手册 2. 可以打包electron生成的项目,大大减小打包体积 3. 自带有zeus打包脚本具体可以参考 https://blog.csdn.net/qq_35921773/article/details/129832612

    NSIS+Duilib自定义安装程序

    NSIS+Duilib自定义安装程序

Global site tag (gtag.js) - Google Analytics