精华内容
下载资源
问答
  • NSIS软件升级包的制作

    千次阅读 2017-11-14 19:29:36
    BrandingText "NSIS" Section -Post  SetRegView 32  WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"  SetRegView lastused SectionEnd ...
    

    !define PRODUCT_NAME "AAA"
    !define PRODUCT_VERSION "3.0.1.1965"
    !define PRODUCT_PUBLISHER "BBB"
    !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
    !define PRODUCT_UNINST_ROOT_KEY "HKLM"

    SetCompressor lzma

    !include "MUI.nsh"
    !include "StrFunc.nsh"
    !include "Library.nsh"
    !include "WordFunc.nsh"

    !define MUI_ABORTWARING

    !define MUI_ICON "Bin\System\icon\AAA.ico"

    !define MUI_WELCOMEPAGE_TITLE "欢迎使用“AAA”安装向导"
    !define MUI_WELCOMEPAGE_TEXT "\r\n这个安装向导将指引你完成“AAA”的升级安装过程。\r\n\r\n开始安装前,建议先关闭其他所有应用程序。这将允许“升级程序”更新指定的系统问件,而不需要重新启动计算机。\r\n\r\n$_CLICK"

    !insertmacro MUI_PAGE_WELCOME

    !insertmacro MUI_PAGE_LICENSE "License.rtf"

    !insertmacro MUI_PAGE_INSTFILES

    !insertmacro MUI_PAGE_FINISH

    !insertmacro MUI_LANGUAGE "SimpChinese"

    Name "AAA"
    OutFile "upgrade_x86.exe"

    InstallDir "$PROGRAMFILES\AAA"

    ShowInstDetails show
    ShowUnInstDetails show
    BrandingText "hahaha..."

    BrandingText "NSIS"

    Section -Post
      SetRegView 32
     WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
     SetRegView lastused
    SectionEnd

    Section -Upgrade

        SetDetailsPrint textonly
        DetailPrint "正在更新程序组件..."
        ;SetDetailsPrint none

        SetAutoClose true

        SetOutPath "$INSTDIR"
        SetOverwrite on
        File /r "update_x86\*.*"
       
     SectionEnd

     Function .onInit
        ;禁止多个安装程序同时运行
      System::Call 'kernel32::CreateMutexA(i 0, i 0, t "VAUpdate") i .r1 ?e'
      Pop $R0
      StrCmp $R0 0 +3
      MessageBox MB_OK|MB_ICONEXCLAMATION "升级程序已经在运行。"
      Abort

      ;判断是否已安装过AAA
      ClearErrors
      StrCpy $R1 ""
      ReadRegStr $R1 ${PRODUCT_UNINST_ROOT_KEY} ${PRODUCT_UNINST_KEY} "UninstallString"
      StrLen $0 $R1

       ${if} $0 < 1
        ;没有安装了软件
        MessageBox MB_OK|MB_ICONEXCLAMATION "您未安装本软件,不能使用此升级程序!"
       ;退出安装程序
       Abort
       ${else}

        !insertmacro VersionCompare

        ;读取已安装软件版本,放在$R2中
        ReadRegStr $R2  ${PRODUCT_UNINST_ROOT_KEY} ${PRODUCT_UNINST_KEY} "DisplayVersion"

         ;比较已安装软件和待安装软件的版本,并把结果放在$1中,结果有三个,1,2,和0
        ${VersionCompare}  "$R2"  "${PRODUCT_VERSION}"  $1

       StrCmp $1  "1"  0  +3
       MessageBox MB_OK  "待安装版本比已安装版本低"
       Abort

         StrCmp $1  "0"  0  +3
       MessageBox MB_OK  "待安装版本和已安装版本一样"
         Abort
      
       ${endif}

     FunctionEnd


    展开全文
  • 简单说 就是安装包是完整的就执行安装功能,安装包是升级包,就静默替换需要更新的文件。 二,流程 三,详解 (1),程序启动后 先调用后端接口,检测线上版本 Upgrade upgrade; upgrade....

    一,需求

    Qt程序,利用NSIS打包软件,实现强制升级功能(包含增量更新)。简单说 就是安装包是完整的就执行安装功能,安装包是升级包,就静默替换需要更新的文件。

     

    二,流程

    三,详解

    (1),程序启动后 先调用后端接口,检测线上版本

    Upgrade upgrade;
        upgrade.setServerInterface(mainController.get()->getServer());
        upgrade.startDetectNet();//检测网络
    
        detectNetView->showFullScreen();
    
        QObject::connect(&upgrade,&Upgrade::update_network_state,[&](int state){
            qDebug()<<"net is detect.........."<<state;
            if(state){ //有网
                upgrade.stopDetectNet();
                detectNetView->close();
                if(upgrade.checkStatus()){//检测到新版本开始升级
                    QQuickView *view = new QQuickView;
                    view->setFlag(Qt::FramelessWindowHint);
                    view->setSource(QUrl("qrc:/Upgrade.qml"));
                    view->setColor(QColor(0,0,0,0));
    
                    QObject *rootObject = (QObject*)view->rootObject();
                    QObject::connect(&upgrade,SIGNAL(updateProgress(int,int)),rootObject,SIGNAL(updateProgressSi(int,int)));
                    QObject::connect(&upgrade, &Upgrade::downloadFinished,[=](){
                        view->close();
                        return 0;
                    });
    
                    upgrade.downloadApp();
                    QObject *updateLog = rootObject->findChild<QObject*>("updateLog");
                    if (updateLog)
                        updateLog->setProperty("text", upgrade.getUpdateLog());
                    view->show();

     

    (2),如果版本较新,则下载文件,到固定位置 并重命名

    void Upgrade::downloadApp()
    {
        QString url = m_status.updateUrl;
        m_absolutelyPathFile =  QDir::homePath()+"/update.exe";
    
        if(QFile::exists(m_absolutelyPathFile)){
            QFile::remove(m_absolutelyPathFile);
        }
    
        m_file = new QFile(m_absolutelyPathFile);
        if(!m_file->open(QIODevice::WriteOnly)){
            delete m_file;
            m_file=nullptr;
            return;
        }
        startRequest(url);
    }

    (3),下载完成 则执行此exe

    void Upgrade::httpFinished()
    {
        m_file->flush();
        m_file->close();
        m_replay->deleteLater();
        m_replay=nullptr;
        delete  m_file;
        m_file=nullptr;
    
        SettingController::GetInst().setRunCount(0);
    
        //升级完成杀掉 守护进程,因为有可能替换守护进程
        QProcess taskkill;
        taskkill.execute("taskkill", QStringList()<<"-im"<<"hiDaemon.exe"<<"-f");
    
        //下载完成 启动程序
        LOG(INFO)<<m_absolutelyPathFile<<" download finished";
       // QProcess::startDetached(m_absolutelyPathFile);
    
        ShellExecute(NULL,L"open",m_absolutelyPathFile.toStdWString().c_str(),NULL,NULL,SW_HIDE);
    
        emit downloadFinished();
    
    
    }
    

    (4),如想实现 增量更新,则只需要在NSIS脚本里,设备为静默安装,并且只添加需要更新的文件即可

    四,其它升级方式

    类似开源软件OBS,将所有文件上传到服务器,然后生成json文件,将每个文件的md5 值写入。升级时,比对每个文件当前的md5于服务端json中的md5,不一样则下载到临时目录,下载成功后 则替换。

     

    五,

    利用gohttp 打造自己的升级服务器(思路)

    这是一个go语言写的 http文件服务器,可以改造一下,变成一个专门用于客户端升级的版本服务器

    https://github.com/codeskyblue/gohttpserver/releases/

    1,增加一个版本描述接口,给客户端返回当期最新版本号,下载地址,md5文件。

    2,客户端每次启动访问此接口,并判断是否需要下载。

    展开全文
  • NSIS打包软件(二)

    2013-04-07 10:27:00
    上一篇(NSIS打包软件(一))主要介绍了NSIS打包软件安装程序,对于我们软件行业来说一般软件都不可能只有一次安装就可以了,还包括以后的软件程序的更新,所以这节主要是针对NSIS打包升级程序安装,平常软件的...

      上一篇(NSIS打包软件(一))主要介绍了NSIS打包软件安装程序,对于我们软件行业来说一般软件都不可能只有一次安装就可以了,还包括以后的软件程序的更新,所以这节主要是针对NSIS打包升级程序安装包,平常软件的更新主要是程序文件的替换和数据库的更新,以下代码也正是如此。好了,不废话,NSIS软件更新包打包代码如下:


    ;
    安装程序初始定义常量 !define PRODUCT_NAME "XX广告制作管理软件" !define PRODUCT_VERSION "2.2" !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\YBest.Ads.exe" SetCompressor lzma ; ------ MUI 现代界面定义 (1.67 版本以上兼容) ------ !include "MUI.nsh" !include "WordFunc.nsh" ; MUI 预定义常量 !define MUI_ICON "ybkj.ico" ; 欢迎页面 !insertmacro MUI_PAGE_WELCOME ; 许可协议页面 !insertmacro MUI_PAGE_LICENSE "Readme.txt" ; 安装过程页面 !insertmacro MUI_PAGE_INSTFILES ; 安装界面包含的语言设置 !insertmacro MUI_LANGUAGE "SimpChinese" ;文件版本声明 VIProductVersion "2.2.0.0" VIAddVersionKey /LANG=2052 "ProductName" "${PRODUCT_NAME}" VIAddVersionKey /LANG=2052 "Comments" "软件版权归XX软件所有,他人不得复制或二次开发本程序。" VIAddVersionKey /LANG=2052 "CompanyName" "www.XX.com" VIAddVersionKey /LANG=2052 "LegalTrademarks" "XX软件" VIAddVersionKey /LANG=2052 "LegalCopyright" "XX.com" VIAddVersionKey /LANG=2052 "FileDescription" "XX广告制作软件-V${PRODUCT_VERSION}升级程序" VIAddVersionKey /LANG=2052 "FileVersion" "${PRODUCT_VERSION}" ; 安装预释放文件 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ; ------ MUI 现代界面定义结束 ------ Name "${PRODUCT_NAME} - V${PRODUCT_VERSION}升级程序" OutFile "${PRODUCT_NAME}-V${PRODUCT_VERSION}升级包.exe" InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" ShowInstDetails hide BrandingText "XX软件 www.XX.com" ; ------ 更新软件 ------ Section "UpdateSoft" SEC01 ;休眠1秒钟 展示安装效果 Sleep 1000 SetDetailsPrint textonly DetailPrint "正在升级 ${PRODUCT_NAME},请单击[关闭]按钮完成升级!" SetDetailsPrint listonly SectionIn RO SetOutPath "$INSTDIR" ;更新比原目录日期新的文件 SetOverwrite ifnewer ;升级文件 File "YBest.Ads.exe" File "YBest.Ads.exe.config" File "YBest.BLL.dll" File "YBest.Common.dll" File "YBest.DAL.dll" File "YBest.DBUtility.dll" File "YBest.Model.dll" File "MqttLib.dll" File "PullService.dll" File "更新说明.txt" File "update.sql" ;更新数据库 Call updateDB WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "version" "${PRODUCT_VERSION}" ;写入版本号 ;指定以记事本打开说明 ;Exec '"$SYSDIR\notepad.exe" "$INSTDIR\更新说明.txt"' SectionEnd ; ------ 更新软件结束 ------ ;更新数据库 Function updateDB ;检查mysql服务是否启动 Push "mysqld.exe" ProcessWork::existsprocess Pop $R0 IntCmp $R0 1 ExecSql MessageBox MB_OK|MB_ICONEXCLAMATION "mysql数据库服务未启动,请启动后再升级程序!" Quit ;未启动则 退出更新安装程序 ExecSql: ;更新数据 ExecWait 'mysql --user=root --password=123456 --execute="source $INSTDIR\update.sql"' $2 StrCmp $2 1 0 endinst MessageBox MB_OK|MB_ICONEXCLAMATION "数据库更新失败!请确认账号密码是否正确或数据库已安装!" Delete "$INSTDIR\update.sql" ;删除文件 Quit ;未启动则 退出更新安装程序 endinst: Delete "$INSTDIR\update.sql" ;删除文件 FunctionEnd Function .onInit ;判断是否已安装 ReadRegStr $0 HKLM "${PRODUCT_DIR_REGKEY}" "" StrCmp $0 "" 0 NoAbort MessageBox MB_OK|MB_ICONEXCLAMATION "您未正确安装${PRODUCT_NAME},不能使用此升级程序!" Abort ;退出安装程序 NoAbort: ;程序正在运行则关闭程序 Push $R0 CheckProc: Push "YBest.Ads.exe" ProcessWork::existsprocess Pop $R0 IntCmp $R0 0 Done MessageBox MB_OKCANCEL|MB_ICONSTOP "升级程序检测到 ${PRODUCT_NAME} 正在运行。$\r$\n$\r$\n点击 “确定” 强制关闭${PRODUCT_NAME},继续升级。$\r$\n点击 “取消” 退出安装程序。" IDCANCEL Exit Push "YBest.Ads.exe" Processwork::KillProcess Sleep 1000 Goto CheckProc Exit: Abort Done: Pop $R0 FunctionEnd

     欢迎大家批评指正,共同进步!谢谢!

    转载于:https://www.cnblogs.com/MineDream/archive/2013/04/07/3003501.html

    展开全文
  • 安装程序打包工具 web项目打包工具 安装包+升级包均可(mysql数据库升级脚本使用SQLYog的架构同步工具+数据库同步)
  • NSIS

    千次阅读 2005-07-13 11:58:00
    http://nsis.sourceforge.net/archive/nsisweb.php?page=32&instances=0 Math plugin (contain examples) -- 数学函数插件,NSIS ... System plugin (contain examples) -- 调用其他动态链接库(*.dll)插件,NSIS 软件已
    http://nsis.sourceforge.net/archive/nsisweb.php?page=32&instances=0
     
    Math plugin (contain examples) -- 数学函数插件,NSIS 软件已包含,这个不用说了吧,计算的时候必用。
    System plugin (contain examples) -- 调用其他动态链接库(*.dll)插件,NSIS 软件已包含,超级好用,把 windows 的 API 发挥到极限。
    A Plugin for controlling Internet Explorer -- 控制 IE 浏览器操作的插件,例如打开浏览器,关闭浏览器等等。
    AccessControl plugin -- 存取控制插件,只适用于 Win2000 或以上。
    BDE Alias -- Borland BDE 数据库别名创建修改插件(DELPHI 数据库程序安装制作的好东东)
    BitTorrent downloads for NSIS -- BT 下载的插件,呵呵,作单独下载某个 BT 文件的好东西
    CabDLL: Plugin to extract all the files from a cabinet (CAB) -- 从 CAB 压缩包中抽取文件的插件
    Change Variable Plugin -- 可用来改变 $TEMP 的临时目录的插件,打破只能由安装程序自动选择系统 temp 路径。
    ChangeRes Plugin -- 改变屏幕分辨率,颜色数,刷新率的插件。
    ComPlusAdmin -- COM+ 组件的添加删除插件
    CPUDesc -- 获取 CPU 相关参数的插件,例如 3DNOW, MMX 支持等等
    CRC generator plugin -- 用来获取文件标准 ZIP CRC32(CRC 校验值) 的插件。
    Crypto Plugin -- 用来加密的插件,算法包括 MD5, SHA1, MD2, MD4,可加密文字,文件,呵呵,绝对可以作出一个需要序列号的安装程序,即使别人有解包工具也需要懂得破解算法加密才行,否则只会得到一堆乱码字节。
    Customisable MessageBox Plugin -- 可自定义消息对话框的插件,呵呵,可以作出4个按钮的消息框。
    Detect Windows Version -- 检查windows系统版本的插件,在严格需要指定系统的时候有用。
    Dialogs 2.3 -- 调用系统标准对话框插件,例如打开,保存等等的标准对话框。
    DumpState -- 可列出安装过程中变量,堆栈里面内容的插件,用来调试之用超一流。
    Enumerate CD-ROM Drives -- 列举当前可用的CD-ROM列表。
    ExecDos -- 创建控制台环境运行DO*程序的插件。
    **ecute & Set Priority -- 以进程方式运行程序,而且可以指定运行优先级的插件。
    ExLicensePage -- 扩展 License 页的插件,是否有很多 License 要用户同意才能安装呢,这个东东就是为了解决这个问题的,实现多页 License 效果。
    external install file system -- 分卷安装制作的插件,用 NSI*把安装程序做到多个软盘中已经不是很困难的事了。
    **tractDLL -- 解压 compressfile.exe 压缩的文件,在用 NSISdl 插件制作在线升级程序时有用。只支持 zlib 算法。
    ExtractDLLEx Plugin (LZMA containerfile decompressor) -- 同上,支持 LZMA 算法。这个插件和上面那个插件出现的目的是为了,在线升级程序多数人都要把升级文件打包以减少体积,而 NSIS 并没有属于自己的解压插件,所以不得不把一些没有精简过代码的解压程序来作为客户端的解压工具,这是不可取的,所以这两个插件随之出现。
    Find Process By Name -- 查找进程的专用插件,呵呵,这下不用自己用API函数来互斥来知道进程是否运行了。
    FloatOP plugin -- IntOp 只能操作整数,该插件就是为了解决浮点数运算问题的。
    Help Support Plugin -- 这是一个可以令到你点击一个按钮或按“F1”就可以通过关键字调出相关帮助中的相关章节的插件。
    InetLoad -- 一个类似 NSISdl 的下载插件,支持 http 和 ftp ,基于 MS WinInet API,对于在线升级程序制作有一定用处。
    InstallOption*** 2.4.2 beta 1 -- 扩展自原 InstallOptions 插件,更多控件支持 Animation(动画), ProgressBar(进度条), TrackBar(位置调节), IPAddress(IP 输入), DateTime(日期时间编辑框), MonthCalendar(日历), UpDown(上下调节), TreeView(树形结构视图框)。还有其他改进功能。
    Internet plugin -- 网络功能插件,取本地计算机的主机名,IP 地址,还有 urls 的状态代码,例如:404 就代表 urls 不存在。
    IPTest -- 检测 IP 段中的可用地址。可用来检测一个IP是否存在并可用。
    KillProcDLL Manual -- 清除进程的插件,既然能检测出阻碍安装过程的进程当然少不了这个清除进程的东东啦。
    Lazarus Registration Component -- 可添加一个输入序列号和注册码的页面,呵呵,想做一个要输入注册码的安装程序吗?这个插件就是用来这样做的。
    Marquee (text scroll) -- 可以在 INSTFILES 页面(安装程序进度列表页面)的列表中添加滚动条的插件。还可以改列表的颜色,字体,边框等等
    MD5 plugin -- md5 插件,著名的校验算法插件,用来检验一个文件的版本是否对应的最好插件。
    MSIBanner - Plugin to display a dialog with a progress bar -- 一个仿效标准 MSI 安装程序(Windows Installer) banner 的界面插件。
    new directory selection page -- 安装目录选择页面插件,能检测是否满足需要空间大小。
    NSIS Debugger -- NSIS 调试器插件,用来调试脚本用的。
    NSIS-Date 1.0 -- 取本地时间的插件,在 API 函数中也能做到,但是这个插件是推荐用的,因为它包括了处理例如夏令时这类的时间问题。
    NSISLog -- 写安装日志的插件,用来记录安装过程,从而准确删除安装过的文件的好插件。
    nsRandom -- 能产生随机数的插件,某些时候,这个插件是很有用的。
    nsScreenshot -- 保存屏幕截图为一个BMP文件的插件。可全屏幕截图或指定窗口截图
    nsWeb: A plugin to display the web browser control in a custom page -- 可以插入一个支持 HTML 的页面插件,也可以以弹出窗口的方式显示,做广告的东东。
    NxS MSI LoaderDlg -- MSIBanner 只是个仿效插件,所以就产生了这个插件,要求完美的人总会有的。
    ODBC Configuration Manager -- ODBC 数据源配置管理插件。制作数据库安装程序的又一个好东东。
    Perl plugin - v. 1.3 -- 这是一个允许在 NSIS 安装程序中执行 Perl 代码的插件。
    Plugin Tester (or Wrapper) -- 这是个能使用命令行参数调用其他插件中函数的插件。
    Processes plug-in -- 查找和清除进程(包括设备驱动)的插件。(适用:WinNT,Win2K,WinXP,Win2003 Server)
    Python Interpreter -- 这是一个允许在 NSIS 安装程序中执行 Python 代码的插件。
    Refresh Desktop Plugin -- 这是一个刷新桌面的插件,有时候程序安装了桌面图标,为什么用户看不见呢,那就需要这个插件了。
    Service Control Manager plugin (install services and drivers on NT/2K/XP) -- 安装服务程序(包括查看服务程序状态,停止,运行操作)的插件。适用:NT/2K/XP
    ShellLink plugin -- 这是允许你读取一个快捷方式文件(*.lnk)的插件,那样你就可以知道这个快捷方式的情况,例如指向哪个文件等等。
    System hardware detection -- 检查系统硬件信息的插件,目前能检测 CPU 名称,CPU 速度,系统内存大小,显卡名称,显卡内存大小。
    System Tray NotifyIcon creator plugin -- 可以产生一个右下角区域中图标的插件,超级酷,估计没有人做过这样的安装程序吧。^__^,可以自定义图标,自定义文字和安装进度百分比。
    TAPI Helper Plugin -- 用来检测 modem 的 ID 和名称的插件。
    ToolTips -- 可以设置安装程序的提示窗口(例如按钮的帮助提示,正常情况下是浅黄背景色)的前景和背景颜色。
    TTF Font Name Plugin -- 能够获取 TTF 字体在计算机中显示的名字的插件,这是个方便制作安装字体的插件。
    UnTGZ -- 这是一个解压缩插件。(*.tgz/*.tar.gz)
    UserMgr Plugin -- 这是一个能够管理用户帐号和用户组的插件。例如创建计算机用户或计算机用户组等的功能。
    VPatch -- 用来制作补丁的插件,能够根据前后版本的不同,根据差异制作出体积非常小的补丁安装程序。
    Write arbitrary sized, runtime assigned binary data to Registry -- 在注册表中写入二进制值的插件,限制最大 511 字节。
    xtInfoPlugin - System Information Plugin -- 检查系统信息插件,安装程序文件名(ie. Setup.exe) 安装程序放置路径(ie. D:/SetupFiles) 安装程序全路径含文件名(ie. D:/SetupFiles/Setup.exe) 计算机当前语言(ie. Danish, English, German, etc.) .NET Framework IDs(ie. 1.0, 1.1, 2.0, etc.) .NET Framework 版本(ie. 1.0.3705, 1.1.4322, etc.) Internet Explorer IDs(ie. 4.01, 5.0, 5.01, 6.0, etc.) Internet Explorer 版本(ie, 5.00.2920.0000, 6.00.2600.0000, etc.) Windows IDs(ie. 95, 98, me, xp, nt3, nt4, 2003, etc) Windows 版本(ie, 5.1.2800, etc.) MDAC IDs(ie. 2.5) MDAC 版本(ie. 2.50.4403.9) OLEDB IDs(ie. 2.5) OLEDB 版本(ie. 2.50.4403.8) Windows Service Pack IDs(ie, 1, 2a, 6a, etc.) 
    ZipDLL -- 解压 Zip 压缩文件的插件。
    展开全文
  • 除此之外,VNISEdit 附带的注册表转换插件还可以把 .reg 文件一次性的转换为 NSIS 脚本,补丁制作向导可以一次性地为你生成体积超小的补丁升级程序。简体中文增强版还在官方版本的基础上集成了一些有用的插件,比如 ...
  • [NSIS] 用NSIS做一个软件升级安装包

    千次阅读 2006-08-01 17:38:00
    在《NSIS使用心得 I》这篇中简要介绍了一下NSIS的脚本编写,通过文章中的介绍相信各位高手很快就做了一个有特色的程序安装了。但相信不是每个人写的软件都只发布一次就可以了,肯定要有修改和维护的情况发生。在...
  • NSIS:应用软件自动升级功能的探索与实践 原文 NSIS:应用软件自动升级功能的探索与实践 记得以前轻狂曾分享过使用第三方软件实现应用软件自动升级功能 (详细...
  • NSIS 脚本示例

    千次阅读 2013-09-27 10:43:36
    使用NSIS作为软件打包发布安装包工具 可使用NSIS Edit作为脚本编辑工具 注意问题: (1). 如果编译脚本提示 Icon大小不匹配,需要将安装和卸载图标的大小,色度改为一致 论坛: ...
  • NSIS静默安装

    千次阅读 2016-05-30 16:59:48
    Nullsoft SuperPiMP Install System (NSIS) 静默安装: 通过Cmd命令的形式: Setup.exe /S(大小写敏感) Setup.exe /S /D:C\安装路径 打包时在section 段上方加入代码: SilentInstall silent ...
  • NSIS病毒新型变种; 解决办法 特点概述 经历 解决办法 特点概述 这是一种烈性病毒...
  • NSIS Patch Generator-开源

    2021-04-24 16:40:23
    nsisPatchGen实用程序以递归方式比较两个目录结构,以查找文件和子目录的更改。 它会生成一个NSIS包含文件,其中包含一些功能,这些功能将执行从原始结构到新结构的补丁升级
  • 这篇讲一下程序升级安装包制作的一些新改进。 可能有牛人认为这不值一提,但我希望能给那些不知道的人一点帮助。 助人乃快乐之本。 :D 程序升级顺序我认为应该是:  1. 如果需要升级的程序正在运行,Kill掉它;...
  • 打包软件 工具: VNISEdit NSIS安装包制作程序 使用VNISEdit向导制作标准安装包 全景展示 创建新的按照脚本步骤如下截图: 这里介绍一个非常详细的制作安装包过程: 原网址使用NSIS和VNISEdit制作一个安装包 4....
  • NSIS 脚本学习基础

    千次阅读 2015-08-04 16:32:42
    使用NSIS作为软件打包发布安装包工具 可使用NSIS Edit作为脚本编辑工具 注意问题: (1). 如果编译脚本提示 Icon大小不匹配,需要将安装和卸载图标的大小,色度改为一致 论坛: ...
  • nsis学习路线

    2019-09-20 03:30:03
    关于nsis的的使用除了基础使用,还应该掌握一些高级用法。 大体布局: 预设参数(包括外部压缩器选择、编译选项、宏定义以及文件包含等) 普通安装设置 自定义函数 安装程序区域内容 安装程序回调函数...
  • 使用 NSIS 制作软件安装包

    千次阅读 2015-08-24 17:34:39
    NSIS软件封装
  • NSIS 脚本学习

    千次阅读 2013-10-28 16:33:27
    使用NSIS作为软件打包发布安装包工具 可使用NSIS Edit作为脚本编辑工具 注意问题: (1). 如果编译脚本提示 Icon大小不匹配,需要将安装和卸载图标的大小,色度改为一致 论坛: ...
  • NSIS 因为NSIS打包应用程序,在安装软件会弹出·防火墙阻止应用程序安装,这在很大程度上影响了用户的体验,故因此在NSIS实现打包时要注意屏蔽掉某些规则。总的来说用户可以创建入站和出站规则,从而阻挡或者允许...
  • NSIS制作安装包步骤

    千次阅读 2016-04-25 15:29:13
    nsis使用: 启动NSIS程序主界面,选择“可视化脚本编辑器(VNISEdit)”菜单,开始制作自己的安装包   选择“使用脚本向导创建新的脚本文件”,确定   进入脚本向导,下一步   第一步,这里填写应用...
  • NSIS 静默安装

    千次阅读 2016-01-21 11:11:53
    1:NSIS静默安装VC_X86.exe Execwait '"路径+exe" /q' 这种情况下,若果exe没有“下一步这种过程”,程序会在读条解包时,静默安装EXE。 2:NSIS静默安装.MSI文件 ExecWait 'msiexec /i "$INSTDIR\drives\Apple...
  • NSIS 脚本介绍

    千次阅读 2010-07-28 19:47:00
    <br />使用NSIS作为软件打包发布安装包工具 可使用NSIS Edit作为脚本编辑工具 <br />注意问题: (1). 如果编译脚本提示 Icon大小不匹配,需要将安装和卸载图标的大小,色度改为一致 <br />...
  • 原文 NSIS:在注册表中记录安装路径以便重装或升级时读取 在NSIS中,这个功能是非常有用的,可以避免用户把程序安装到多个位置的尴尬。第1步:在“安装目录选择页面”前面加入以下代码:  1 ...
  • 来源地址: ...数学函数插件,NSIS 软件已包含,这个不用说了吧,计算的时候必用。 • System plugin (contain examples) 调用其他动态链接库(*.dll)插件,NSIS 软件已包含,超级好用,把 window
  • NSIS制作软件安装包

    千次阅读 2018-03-26 18:36:20
    NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NSIS 是通过它的脚本语言来描述安装程序的...
  • NSIS 使用技巧

    2015-04-22 12:15:10
    DetailPrint默认是不显示的,如果要让其print的信息显示,需在NSIS的脚本起始处添加 ShowInstDetails show [code="java"] Name "nsExec Test" OutFile "nsExec Test.exe" ...
  • NSIS大杂烩

    2021-01-18 09:27:43
    一、NSIS介绍 3.[NSIS] 用NSIS做一个软件升级安装包 4.NSIS 制作自动升级包 5.NSIS:在注册表中记录安装路径以便重装或升级时读取 6.安装包美化(牛牛) 7.nsis安装包_示例脚本语法解析 8.NSIS安装打包程序的版本...
  • nsis安装包(三)_NSIS简介

    千次阅读 2012-07-22 19:04:31
    脚本安装系统(英语:Nullsoft Scriptable Install System,缩写:NSIS)为一个开放源代码脚本驱动的封装安装工具。可以用其脚本语言自定义安装的流程,同时支援多种语系的安装接口。   Nullsoft Nullsoft是一个...

空空如也

空空如也

1 2 3 4 5 ... 19
收藏数 371
精华内容 148
关键字:

nsis升级包