zoukankan      html  css  js  c++  java
  • NSIS安装MSDE2000和NET2.0脚本代码

    相关软件:使用到几个软件nsis-2.45-setup.exe(主程序)和nisedit2.0b5.exe(第三方编辑器)
    要打包的文件:软件主程序,NET2.0组件。MSDE 2000 SP3,软件许可协议.TXT.读我.TXT和LOGO文件自己准备.广告条右侧安装LOGO尺寸150*57,按抓过界面左侧大图尺寸为164*314.
    主要流程包括:定义参数,安装软件和组件选择,安装文件拷贝部分和卸载部分.快捷方式的建立删除。
    要注意的地方是:先定义安装的Section区段,然后定义相关函数,读取注册表部分,创建删除文件部分,MSDE的setup.ini文件注意修改一下密码,MSDE实例名称等等信息,格式如下:
    [Options]
    INSTANCENAME="MSDE实例名称"
    SAPWD="123456"
    SECURITYMODE="SQL"
    USEDEFAULTSAPWD
    DISABLENETWORKPROTOCOLS=0
    测试安装文件确实要比WINDOWS漂亮多了。安装MSDE后直接附加数据库的功能暂时没有研究。可以放到软件运行开始检测。

    下面是脚本全文:

    ; Script generated by the HM NIS Edit Script Wizard.

    ; HM NIS Edit Wizard helper defines
    !define PRODUCT_NAME "我的软件名称"
    !define PRODUCT_VERSION "1.0"
    !define PRODUCT_PUBLISHER "我的公司名称, Inc."
    !define PRODUCT_WEB_SITE "官方网站地址"
    !define PRODUCT_DIR_REGKEY "Software/Microsoft/Windows/CurrentVersion/App Paths/我的应用程序可执行文件.exe"
    !define PRODUCT_UNINST_KEY "Software/Microsoft/Windows/CurrentVersion/Uninstall/${PRODUCT_NAME}"
    !define PRODUCT_UNINST_ROOT_KEY "HKLM"
    ; MUI 1.67 compatible ------
    !include "MUI.nsh"
    ; MUI 预定义常量
    !define MUI_ABORTWARNING
    ;定义装程序图标
    !define MUI_ICON "标题栏目顶部左侧LOGO.ico"
    ;定义卸载程序图标
    !define MUI_UNICON "卸载LOGO.ico"
    ;下面三行定义左侧图片
    !define MUI_HEADERIMAGE
    !define MUI_HEADERIMAGE_RIGHT
    !define MUI_HEADERIMAGE_BITMAP "安装广告条LOGO.bmp"
    ; 定义安装语言选择
    !define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
    !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
    !define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"

    ; 欢迎页面
    !insertmacro MUI_PAGE_WELCOME
    ; 许可协议页面
    !insertmacro MUI_PAGE_LICENSE "软件许可协议.txt"
    ; 组件选择页面
    !insertmacro MUI_PAGE_COMPONENTS
    ; 安装目录选择页面
    !insertmacro MUI_PAGE_DIRECTORY
    ; 安装过程页面
    !insertmacro MUI_PAGE_INSTFILES
    ; 安装完成页面
    !define MUI_FINISHPAGE_RUN "$INSTDIR/我的应用程序可执行文件.exe"
    !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR/读我.txt"
    !insertmacro MUI_PAGE_FINISH

    ; 安装卸载过程页面
    !insertmacro MUI_UNPAGE_INSTFILES

    ; 安装界面包含的语言设置
    !insertmacro MUI_LANGUAGE "SimpChinese"
    ; 安装预释放文件
    !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS

    ; MUI 现代界面定义结束 ------

    Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
    OutFile "Setup.exe"
    InstallDir "$PROGRAMFILES/我的软件名称"
    Icon "标题栏目顶部左侧LOGO.ico"
    UninstallIcon "卸载LOGO.ico"
    InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
    ComponentText "勾选想要安装的组件,并解除勾选你不想要安装的:"
    DirText "安装程序将安装 $(^Name) 在下列文件夹。$/r$/n$/r$/n要安装在不同文件夹,单击 [浏览] 并选择其他文件夹。"
    LicenseText "如果你接受所有协议条款,选择 [我愿意] 继续。你必须接受协议才能安装 $(^Name)。."
    LicenseForceSelection checkbox
    ShowInstDetails show
    ShowUnInstDetails show
    BrandingText "公司名称"
    SetCompress off

    ;以下定义的是安装程序时候要选择的安装软件和组件列表sec01--软件主程序,sec02--NET2.0,sec03--MSDE2000
    Section !应用程序主程序 sec01
    ;用户必选的安装程序
    SectionIn RO
      SetOutPath "$INSTDIR"
      SetOverwrite ifnewer          ;文件较新安装方式
    ;下面设置的是应用程序发布的文件地址
      File "../我的工程项目名称/bin/Debug/我的工程项目名称.vshost.exe.manifest"
      File "../我的工程项目名称/bin/Debug/我的工程项目名称.vshost.exe.config"
      File "../我的工程项目名称/bin/Debug/我的工程项目名称.vshost.exe"
      File "../我的工程项目名称/bin/Debug/我的工程项目名称.vshost.application"
      File "../我的工程项目名称/bin/Debug/我的工程项目名称.suo"
      File "../我的工程项目名称/bin/Debug/我的工程项目名称.pdb"
      File "../我的工程项目名称/bin/Debug/我的应用程序可执行文件.exe.manifest"
      File "../我的工程项目名称/bin/Debug/我的应用程序可执行文件.exe.config"
      File "../我的工程项目名称/bin/Debug/我的应用程序可执行文件.exe"
    ;下面设置的是应用程序EXE文件的桌面快捷方式
      CreateShortCut "$DESKTOP/我的软件名称.lnk" "$INSTDIR/我的应用程序可执行文件.exe"
      CreateDirectory "开始菜单要定义的软件文件夹名称"
      CreateShortCut "$STARTMENU.lnk" "$INSTDIR/我的应用程序可执行文件.exe"
      File "../我的工程项目名称/bin/Debug/我的工程项目名称.application"
      ;拷贝主程序完成
      SetOutPath "$INSTDIR/Framework2.0"
      SetOverwrite try
      File "我的组件位置目录名称/Framework2.0/NetFx20SP2_x86.exe"
      ;拷贝NET2.0组件到安装目录下的Framework2.0目录中完成
      SetOutPath "$INSTDIR/MSDE"
      File "我的组件位置目录名称/MSDE/autorun.inf"
      SetOutPath "$INSTDIR/MSDE/Msi"
      File "我的组件位置目录名称/MSDE/Msi/InstMsi.exe"
      File "我的组件位置目录名称/MSDE/Msi/InstMsi20.exe"
      File "我的组件位置目录名称/MSDE/Msi/InstMsiW.exe"
      File "我的组件位置目录名称/MSDE/Msi/InstMsiW20.exe"
      SetOutPath "$INSTDIR/MSDE/MSM/1033"
      File "我的组件位置目录名称/MSDE/MSM/1033/DMO_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/1033/DTS_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/1033/REPL_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/1033/SEM_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/1033/SQLAGENT_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/1033/SQLSVR_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/1033/我的组件位置目录名称_RES.MSM"
      SetOutPath "$INSTDIR/MSDE/MSM/2052"
      File "我的组件位置目录名称/MSDE/MSM/2052/DMO_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/2052/DTS_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/2052/REPL_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/2052/SEM_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/2052/SQLAGENT_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/2052/SQLBASE.MSM"
      File "我的组件位置目录名称/MSDE/MSM/2052/SQLSVR_RES.MSM"
      File "我的组件位置目录名称/MSDE/MSM/2052/我的组件位置目录名称_RES.MSM"
      SetOutPath "$INSTDIR/MSDE/MSM"
      File "我的组件位置目录名称/MSDE/MSM/atl.msm"
      File "我的组件位置目录名称/MSDE/MSM/CONNECT.MSM"
      File "我的组件位置目录名称/MSDE/MSM/DEV_SCM.MSM"
      File "我的组件位置目录名称/MSDE/MSM/DMO.MSM"
      File "我的组件位置目录名称/MSDE/MSM/DTC.MSM"
      File "我的组件位置目录名称/MSDE/MSM/DTS.MSM"
      File "我的组件位置目录名称/MSDE/MSM/mfc42.msm"
      File "我的组件位置目录名称/MSDE/MSM/msstkprp.msm"
      File "我的组件位置目录名称/MSDE/MSM/msvcirt.msm"
      File "我的组件位置目录名称/MSDE/MSM/msvcrt.msm"
      File "我的组件位置目录名称/MSDE/MSM/REPL.MSM"
      File "我的组件位置目录名称/MSDE/MSM/SEM.MSM"
      File "我的组件位置目录名称/MSDE/MSM/SHARED.MSM"
      File "我的组件位置目录名称/MSDE/MSM/SQLAGENT.MSM"
      File "我的组件位置目录名称/MSDE/MSM/SQLSVR.MSM"
      File "我的组件位置目录名称/MSDE/MSM/我的组件位置目录名称.MSM"
      File "我的组件位置目录名称/MSDE/MSM/UPGRADE.MSM"
      SetOutPath "$INSTDIR/MSDE"
      File "我的组件位置目录名称/MSDE/readme.txt"
      SetOutPath "$INSTDIR/MSDE/Setup"
      File "我的组件位置目录名称/MSDE/Setup/Sql2000.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun.cab"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun01.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun01P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun02.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun02P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun03.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun03P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun04.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun04P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun05.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun05P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun06.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun06P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun07.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun07P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun08.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun08P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun09.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun09P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun10.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun10P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun11.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun11P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun12.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun12P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun13.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun13P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun14.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun14P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun15.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun15P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun16.msi"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun16P.msp"
      File "我的组件位置目录名称/MSDE/Setup/SqlRun17P.msp"
      SetOutPath "$INSTDIR/MSDE"
      File "我的组件位置目录名称/MSDE/setup.exe"
      File "我的组件位置目录名称/MSDE/setup.ini"
      File "我的组件位置目录名称/MSDE/setup.rll"
      File "我的组件位置目录名称/MSDE/sp3readme.htm"
      File "我的组件位置目录名称/MSDE/sqlresld.dll"
      SetOutPath "$INSTDIR/DataBase"
      ;拷贝MSDE2000安装文件到安装目录下的MSDE目录中完成
    SectionEnd

    Section -AdditionalIcons
      WriteIniStr "$INSTDIR/${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
      CreateDirectory "$SMPROGRAMS/我的软件名称"
      CreateShortCut "$SMPROGRAMS/我的软件名称/官方网站.lnk" "$INSTDIR/${PRODUCT_NAME}.url"
      CreateShortCut "$SMPROGRAMS/我的软件名称/卸载软件.lnk" "$INSTDIR/uninst.exe"
    SectionEnd

    Section -Post
      WriteUninstaller "$INSTDIR/uninst.exe"
      WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR/我的应用程序可执行文件.exe"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR/uninst.exe"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR/我的应用程序可执行文件.exe"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
    SectionEnd


    ;必要组件Framework 2.0安装
    Section 'NET Framework 2.0 SP2' sec02
    ;检查HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v2.0.50727键下的Install的值等于1,则说明.NET Framework 2.0.50727已经安装。
    ;检查HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.0键下的Install的值等于1
    ;检查HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5键下的Install值等于1
    ReadRegDWORD $0 HKLM 'SOFTWARE/Microsoft/NET Framework Setup/NDP/v2.0.50727' Install
    ${If} $0 == ''
    ;如果没有安装则调用对应位置的组件安装包进行安装
    DetailPrint '..正在安装NET Framework 2.0 SP2组件'
    SetOutPath "$INSTDIR"
    SetOverwrite ifnewer
    ExecWait 'INSTDIR/Framework2.0/NetFx20SP2_x86111.exe /quiet /norestart' $0
    DetailPrint '..NET Framework 2.0 SP2 exit code = $0'
    ${Else}
    ;如果已经安装则调用显示对话框
    DetailPrint '..您的电脑已经安装NET Framework 2.0 SP1组件!!'
    ${EndIf}
    SectionEnd

    ;必要组件MSDE 2000安装
    Section 'MSDE 2000' sec03
    ;检查HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSSQL$$MSDE实例名称键下的DisplayName的值等于MSSQL$$MSDE实例名称,则说明数据库软件MSDE 2000已经安装。
    ReadRegDWORD $0 HKLM 'SYSTEM/CurrentControlSet/Services/MSSQL$$MSDE实例名称' DisplayName
    ${If} $0 == 'MSSQL$$MSDE实例名称'
    ;如果已经安装则调用显示对话框
    DetailPrint '..您的电脑已经安装MSDE 2000软件!!'
    ${Else}
    ;如果没有安装则调用对应位置的组件安装包进行安装
    DetailPrint '..正在安装MSDE 2000软件'
    SetOutPath "$INSTDIR"
    SetOverwrite ifnewer
    ExecWait '$INSTDIR/MSDE/setup.exe /quiet /norestart' $0
    DetailPrint '..MSDE 2000 exit code = $0'
    ${EndIf}
    SectionEnd

    ; 区段组件描述,主要是安装选则组件时候鼠标移动到上面代码的sec01,sec02,sec03代码时候右边显示的区段描述
    !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${sec01} "我的软件名称主程序,必须安装!"
    !insertmacro MUI_DESCRIPTION_TEXT ${sec02} "我的软件名称运行环境组件,可根据实际情况选择安装!"
    !insertmacro MUI_DESCRIPTION_TEXT ${sec03} "我的软件名称运行数据库软件,可根据实际情况选择安装"
    !insertmacro MUI_FUNCTION_DESCRIPTION_END

    ;安装部分相关的Function区段放置在安装Section区段之后
    Function .onInit
    ;禁止多安装程序同时运行
    System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
    Pop $R0
    StrCmp $R0 0 +3
    MessageBox MB_OK|MB_ICONEXCLAMATION "安装程序已经在运行。"
    Abort
    ;判断软件是否已经被安装
    ReadRegStr $R0 HKLM "${PRODUCT_DIR_REGKEY}" ""
    ${If} $R0 != "" ;没有被安装时什么都不做直接跳出
    MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "您的电脑已经安装有${PRODUCT_NAME}产品,是否卸载它?" IDYES +2
    Abort
    ReadRegStr $R1 HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
    ;运行卸载程序
    ClearErrors
    ExecWait '$R1 _?=$INSTDIR'
    IfErrors no_remove_uninstaller
    IfFileExists "$INSTDIR/makensis.exe" no_remove_uninstaller
    Delete $R1
    RMDir $INSTDIR
    no_remove_uninstaller:
    ${EndIf}

    FunctionEnd


    ;安装程序的卸载部分
    Section Uninstall
      Delete "$INSTDIR/${PRODUCT_NAME}.url"
      Delete "$INSTDIR/uninst.exe"
      ;开始删除MSDE2000相关的安装文件
      Delete "$INSTDIR/MSDE/sqlresld.dll"
      Delete "$INSTDIR/MSDE/sp3readme.htm"
      Delete "$INSTDIR/MSDE/setup.rll"
      Delete "$INSTDIR/MSDE/setup.ini"
      Delete "$INSTDIR/MSDE/setup.exe"
      Delete "$INSTDIR/MSDE/Setup/SqlRun17P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun16P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun16.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun15P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun15.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun14P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun14.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun13P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun13.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun12P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun12.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun11P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun11.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun10P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun10.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun09P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun09.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun08P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun08.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun07P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun07.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun06P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun06.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun05P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun05.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun04P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun04.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun03P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun03.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun02P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun02.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun01P.msp"
      Delete "$INSTDIR/MSDE/Setup/SqlRun01.msi"
      Delete "$INSTDIR/MSDE/Setup/SqlRun.cab"
      Delete "$INSTDIR/MSDE/Setup/Sql2000.msi"
      Delete "$INSTDIR/MSDE/readme.txt"
      Delete "$INSTDIR/MSDE/MSM/UPGRADE.MSM"
      Delete "$INSTDIR/MSDE/MSM/我的组件位置目录名称.MSM"
      Delete "$INSTDIR/MSDE/MSM/SQLSVR.MSM"
      Delete "$INSTDIR/MSDE/MSM/SQLAGENT.MSM"
      Delete "$INSTDIR/MSDE/MSM/SHARED.MSM"
      Delete "$INSTDIR/MSDE/MSM/SEM.MSM"
      Delete "$INSTDIR/MSDE/MSM/REPL.MSM"
      Delete "$INSTDIR/MSDE/MSM/msvcrt.msm"
      Delete "$INSTDIR/MSDE/MSM/msvcirt.msm"
      Delete "$INSTDIR/MSDE/MSM/msstkprp.msm"
      Delete "$INSTDIR/MSDE/MSM/mfc42.msm"
      Delete "$INSTDIR/MSDE/MSM/DTS.MSM"
      Delete "$INSTDIR/MSDE/MSM/DTC.MSM"
      Delete "$INSTDIR/MSDE/MSM/DMO.MSM"
      Delete "$INSTDIR/MSDE/MSM/DEV_SCM.MSM"
      Delete "$INSTDIR/MSDE/MSM/CONNECT.MSM"
      Delete "$INSTDIR/MSDE/MSM/atl.msm"
      Delete "$INSTDIR/MSDE/MSM/2052/我的组件位置目录名称_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/2052/SQLSVR_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/2052/SQLBASE.MSM"
      Delete "$INSTDIR/MSDE/MSM/2052/SQLAGENT_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/2052/SEM_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/2052/REPL_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/2052/DTS_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/2052/DMO_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/1033/我的组件位置目录名称_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/1033/SQLSVR_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/1033/SQLAGENT_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/1033/SEM_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/1033/REPL_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/1033/DTS_RES.MSM"
      Delete "$INSTDIR/MSDE/MSM/1033/DMO_RES.MSM"
      Delete "$INSTDIR/MSDE/Msi/InstMsiW20.exe"
      Delete "$INSTDIR/MSDE/Msi/InstMsiW.exe"
      Delete "$INSTDIR/MSDE/Msi/InstMsi20.exe"
      Delete "$INSTDIR/MSDE/Msi/InstMsi.exe"
      Delete "$INSTDIR/MSDE/autorun.inf"
      ;开始删除NET2.0相关的安装文件
      Delete "$INSTDIR/Framework2.0/NetFx20SP2_x86.exe"
      ;开始删除主程序相关的安装文件
      Delete "$INSTDIR/我的工程项目名称.application"
      Delete "$INSTDIR/我的应用程序可执行文件.exe"
      Delete "$INSTDIR/我的应用程序可执行文件.exe.config"
      Delete "$INSTDIR/我的应用程序可执行文件.exe.manifest"
      Delete "$INSTDIR/我的工程项目名称.pdb"
      Delete "$INSTDIR/我的工程项目名称.suo"
      Delete "$INSTDIR/我的工程项目名称.vshost.application"
      Delete "$INSTDIR/我的工程项目名称.vshost.exe"
      Delete "$INSTDIR/我的工程项目名称.vshost.exe.config"
      Delete "$INSTDIR/我的工程项目名称.vshost.exe.manifest"
      ;开始删除开始菜单和桌面上相关的快捷方式文件
      Delete "$SMPROGRAMS/我的软件名称/卸载软件.lnk"
      Delete "$SMPROGRAMS/我的软件名称/官方网站.lnk"
      Delete "$STARTMENU.lnk"
      Delete "$DESKTOP/我的软件名称.lnk"
      ;开始删除对应的目录
      RMDir "$SMPROGRAMS/我的软件名称"
      RMDir "$INSTDIR/MSDE/Setup"
      RMDir "$INSTDIR/MSDE/MSM/2052"
      RMDir "$INSTDIR/MSDE/MSM/1033"
      RMDir "$INSTDIR/MSDE/MSM"
      RMDir "$INSTDIR/MSDE/Msi"
      RMDir "$INSTDIR/MSDE"
      RMDir "$INSTDIR/Framework2.0"
      RMDir "$INSTDIR"
      RMDir ""

      DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
      DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
      SetAutoClose true
    SectionEnd

    ;卸载部分相关的Function区段放置在卸载Section区段之后
    Function un.onInit
      MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你确实要完全移除 $(^Name) ,其及所有的组件?" IDYES +2
      Abort
    FunctionEnd

    Function un.onUninstSuccess
      HideWindow
      MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
    FunctionEnd

  • 相关阅读:
    mybatis date类型比较
    搭建 c 语言环境 1_centos6 minimal 配置 c/c++ 编译环境
    2_eclipse配置c/c++环境
    1_eclipse导入hibernate 的DTD 文件
    1_eclipse配置c/c++开发环境
    2_修改Eclipse里面的快捷键
    1_修改注释内容
    8_对象创建、static 关键字、静态变量和成员变量的区别、文档
    7_匿名对象、封装(private)、this 关键字、构造方法
    6_面向对象基础、成员变量和局部变量的区别
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306821.html
Copyright © 2011-2022 走看看