NSIS判断FrameWork是否安装

NSIS的官方地址是:http://nsis.sourceforge.net/Main_Page

     NSIS的下载地址是:http://nsis.sourceforge.net/Download

     NSIS的帮助文档是:http://nsis.sourceforge.net/Docs/

 判断DotNetFrameWork是否安装,可以自己添加如下的代码:

 

;f2.0

Function .onInit
   call isStepFramework
 FunctionEnd

 

  Function isStepFramework

        ReadRegStr $0 HKLM SOFTWARE/Microsoft/.NETFramework/policy/v2.0 "50727"
        StrCmp $0 "50727-50727" 0 +2
        Return    ;相同
        SetOutPath "$DOCUMENTS"
        File "setupRelease/dotnetfx.exe"


        ExecWait '"$DOCUMENTS/dotnetfx.exe"'
 FunctionEnd

 

 

 

 

 

     Function IsNetfx35Installed

    ;Check is Net 3.5 is install

    ;Push 0 for true, Pop -1 for false

    ${registry::Read} "HKEY_LOCAL_MACHINE/Software/Microsoft/NET Framework Setup/NDP/v3.5" "SP" $R0 $R1

    ${If} $R1 == ""

        Push -1

    ${Else}

        Push 0

    ${EndIf}

  FunctionEnd 

     这是一个定义函数,他首先可以使用${registry::Read}来读取注册表中的值,并放入$R0 $R1,分别是类型和值,判断获取的值是不是为空,就可以判断是不是安装过.NET Framework 3.5了。

     安装.NET Framework 3.5:

  Function InstallDotNetFx

      SetOutPath "$PLUGINSDIR"

      Banner::show /NOUNLOAD "正在安装.NET运行库,请耐心等待..."

      ExecWait '"$EXEDIR/DotNetFX35/dotNetFx35setup.exe"' $0

      pop $0

      ${If} $0 != "0"

          Banner::destroy

          abort

      ${EndIf}

      Banner::destroy

  FunctionEnd

  这是.NET Framework 3.5的安装,我选择了dotNetFx3.5的离线安装包,并将其放在安装文件的目录下,这样可以不把

 .NET Framework 3.5打包到程序中,减少程序的大小。$EXEDIR是NSIS的内部程序常量,可以获取安装文件的目录。而且他还提供了很多的内部宏和常量。

  插件的自作,需要访问已经安装的程序目录,这就要使用对其注册表的方法,将程序的安装目录获取,对于NSIS,这也是相当的简单的。 

  首先在安装目录的最上方:

  InstallDir "$PROGRAMFILES/Test"

  修改为:

  InstallDirRegKey HKLM "SOFTWARE/Test" "Path"

  然后在Function .onInit中添加如下的内容:

    StrCmp $INSTDIR "" 0 Continue

      MessageBox MB_OK|MB_ICONSTOP "Test 未安装,请先安装Test。"

      Abort

   Continue:

  相当的简单。 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值