1. 放肆雷特 - 锋哥的博客首页
  2. 程序生涯
  3. .NET

NSIS安装程序制作工具判断系统是否安装.NET

前段时间忙了很久的系统总算上线了,由于是WinForm程序不能整个文件夹的发给客户使用。所以必须要打包,记得以前在VS2005中是自带部署功能的。现在换了VS2013那个部署功能完全弄不清方向。最后在网上找了NSIS这个开源的安装程序制作工具。翻看了一下它的说明,和网上的一些教程。最后打包出了一个个人认为还比较可以的安装程序。其中主要遇到的两个问题:

  1. 判断操作系统是否安装.NET
  2. 给安装界面配上友好的皮肤

由于我的程序是用C#写的,所以必需要判断客户机器上面是否安装了.NET框架。使用NSIS解决如下:
在代码中加上以下代码:

#-- 判断.NET4.0是否安装 --#
Function CheckFramework4
 ;Clinet 和 Full存在一个都说明安装了Framework
 ClearErrors
 ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" "Install2"


 IfErrors 0 ExitCheckFramework4
  ClearErrors
  ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
 IfErrors 0 ExitCheckFramework4
    ;没有安装Framework
    MessageBox MB_OK "装程序无法检测到.NET Framework V4.0 $\n请加QQ群:44329330 联系群主进行安装。"
    Abort


 ExitCheckFramework4:
FunctionEnd

再在.onInit函数第一句里面加上:“Call CheckFramework4”
OK,当你发给客户安装时如果客户没有安装.net4.0那么就会提示出该消息框。其实这里还可以把.net也打包进去,但是那样也比较麻烦。会导致安装包比较大。所以我采取的是联系我们人工安装。

原创文章,作者:锋哥,如若转载,请注明出处:https://www.fangsi.net/809.html

发表评论

登录后才能评论

评论列表(2条)

  • xjwebs
    xjwebs 2014年4月22日 11:23

    写死版本号的话,如果对方用的是v3.5或者v2.0也会提示了

    • 胖子
      锋哥 回复 xjwebs 2014年4月22日 12:01

      是的,但是你可以在里面多加几个判断。这种方式也不一定用到检测.NET上面。其它需要判断注册表的也能用到。

联系我们

在线咨询:点击这里给我发消息

邮件:service@fangsi.net

工作时间:周一至周五,9:30-18:30,节假日休息