杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2055|回复: 0

NSIS安装MSDE2000和NET2.0脚本代码

[复制链接]
发表于 2016-9-2 20:00:46 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要打包的文件:软件主程序,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后直接附加数据库的功能暂时没有研究。可以放到软件运行开始检测。

  1. ; Script generated by the HM NIS Edit Script Wizard.

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

  26. ; 欢迎页面
  27. !insertmacro MUI_PAGE_WELCOME
  28. ; 许可协议页面
  29. !insertmacro MUI_PAGE_LICENSE "软件许可协议.txt"
  30. ; 组件选择页面
  31. !insertmacro MUI_PAGE_COMPONENTS
  32. ; 安装目录选择页面
  33. !insertmacro MUI_PAGE_DIRECTORY
  34. ; 安装过程页面
  35. !insertmacro MUI_PAGE_INSTFILES
  36. ; 安装完成页面
  37. !define MUI_FINISHPAGE_RUN "$INSTDIR/我的应用程序可执行文件.exe"
  38. !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR/读我.txt"
  39. !insertmacro MUI_PAGE_FINISH

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

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

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

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

  61. ;以下定义的是安装程序时候要选择的安装软件和组件列表sec01--软件主程序,sec02--NET2.0,sec03--MSDE2000
  62. Section !应用程序主程序 sec01
  63. ;用户必选的安装程序
  64. SectionIn RO
  65.   SetOutPath "$INSTDIR"
  66.   SetOverwrite ifnewer          ;文件较新安装方式
  67. ;下面设置的是应用程序发布的文件地址
  68.   File "../我的工程项目名称/bin/Debug/我的工程项目名称.vshost.exe.manifest"
  69.   File "../我的工程项目名称/bin/Debug/我的工程项目名称.vshost.exe.config"
  70.   File "../我的工程项目名称/bin/Debug/我的工程项目名称.vshost.exe"
  71.   File "../我的工程项目名称/bin/Debug/我的工程项目名称.vshost.application"
  72.   File "../我的工程项目名称/bin/Debug/我的工程项目名称.suo"
  73.   File "../我的工程项目名称/bin/Debug/我的工程项目名称.pdb"
  74.   File "../我的工程项目名称/bin/Debug/我的应用程序可执行文件.exe.manifest"
  75.   File "../我的工程项目名称/bin/Debug/我的应用程序可执行文件.exe.config"
  76.   File "../我的工程项目名称/bin/Debug/我的应用程序可执行文件.exe"
  77. ;下面设置的是应用程序EXE文件的桌面快捷方式
  78.   CreateShortCut "$DESKTOP/我的软件名称.lnk" "$INSTDIR/我的应用程序可执行文件.exe"
  79.   CreateDirectory "开始菜单要定义的软件文件夹名称"
  80.   CreateShortCut "$STARTMENU.lnk" "$INSTDIR/我的应用程序可执行文件.exe"
  81.   File "../我的工程项目名称/bin/Debug/我的工程项目名称.application"
  82.   ;拷贝主程序完成
  83.   SetOutPath "$INSTDIR/Framework2.0"
  84.   SetOverwrite try
  85.   File "我的组件位置目录名称/Framework2.0/NetFx20SP2_x86.exe"
  86.   ;拷贝NET2.0组件到安装目录下的Framework2.0目录中完成
  87.   SetOutPath "$INSTDIR/MSDE"
  88.   File "我的组件位置目录名称/MSDE/autorun.inf"
  89.   SetOutPath "$INSTDIR/MSDE/Msi"
  90.   File "我的组件位置目录名称/MSDE/Msi/InstMsi.exe"
  91.   File "我的组件位置目录名称/MSDE/Msi/InstMsi20.exe"
  92.   File "我的组件位置目录名称/MSDE/Msi/InstMsiW.exe"
  93.   File "我的组件位置目录名称/MSDE/Msi/InstMsiW20.exe"
  94.   SetOutPath "$INSTDIR/MSDE/MSM/1033"
  95.   File "我的组件位置目录名称/MSDE/MSM/1033/DMO_RES.MSM"
  96.   File "我的组件位置目录名称/MSDE/MSM/1033/DTS_RES.MSM"
  97.   File "我的组件位置目录名称/MSDE/MSM/1033/REPL_RES.MSM"
  98.   File "我的组件位置目录名称/MSDE/MSM/1033/SEM_RES.MSM"
  99.   File "我的组件位置目录名称/MSDE/MSM/1033/SQLAGENT_RES.MSM"
  100.   File "我的组件位置目录名称/MSDE/MSM/1033/SQLSVR_RES.MSM"
  101.   File "我的组件位置目录名称/MSDE/MSM/1033/我的组件位置目录名称_RES.MSM"
  102.   SetOutPath "$INSTDIR/MSDE/MSM/2052"
  103.   File "我的组件位置目录名称/MSDE/MSM/2052/DMO_RES.MSM"
  104.   File "我的组件位置目录名称/MSDE/MSM/2052/DTS_RES.MSM"
  105.   File "我的组件位置目录名称/MSDE/MSM/2052/REPL_RES.MSM"
  106.   File "我的组件位置目录名称/MSDE/MSM/2052/SEM_RES.MSM"
  107.   File "我的组件位置目录名称/MSDE/MSM/2052/SQLAGENT_RES.MSM"
  108.   File "我的组件位置目录名称/MSDE/MSM/2052/SQLBASE.MSM"
  109.   File "我的组件位置目录名称/MSDE/MSM/2052/SQLSVR_RES.MSM"
  110.   File "我的组件位置目录名称/MSDE/MSM/2052/我的组件位置目录名称_RES.MSM"
  111.   SetOutPath "$INSTDIR/MSDE/MSM"
  112.   File "我的组件位置目录名称/MSDE/MSM/atl.msm"
  113.   File "我的组件位置目录名称/MSDE/MSM/CONNECT.MSM"
  114.   File "我的组件位置目录名称/MSDE/MSM/DEV_SCM.MSM"
  115.   File "我的组件位置目录名称/MSDE/MSM/DMO.MSM"
  116.   File "我的组件位置目录名称/MSDE/MSM/DTC.MSM"
  117.   File "我的组件位置目录名称/MSDE/MSM/DTS.MSM"
  118.   File "我的组件位置目录名称/MSDE/MSM/mfc42.msm"
  119.   File "我的组件位置目录名称/MSDE/MSM/msstkprp.msm"
  120.   File "我的组件位置目录名称/MSDE/MSM/msvcirt.msm"
  121.   File "我的组件位置目录名称/MSDE/MSM/msvcrt.msm"
  122.   File "我的组件位置目录名称/MSDE/MSM/REPL.MSM"
  123.   File "我的组件位置目录名称/MSDE/MSM/SEM.MSM"
  124.   File "我的组件位置目录名称/MSDE/MSM/SHARED.MSM"
  125.   File "我的组件位置目录名称/MSDE/MSM/SQLAGENT.MSM"
  126.   File "我的组件位置目录名称/MSDE/MSM/SQLSVR.MSM"
  127.   File "我的组件位置目录名称/MSDE/MSM/我的组件位置目录名称.MSM"
  128.   File "我的组件位置目录名称/MSDE/MSM/UPGRADE.MSM"
  129.   SetOutPath "$INSTDIR/MSDE"
  130.   File "我的组件位置目录名称/MSDE/readme.txt"
  131.   SetOutPath "$INSTDIR/MSDE/Setup"
  132.   File "我的组件位置目录名称/MSDE/Setup/Sql2000.msi"
  133.   File "我的组件位置目录名称/MSDE/Setup/SqlRun.cab"
  134.   File "我的组件位置目录名称/MSDE/Setup/SqlRun01.msi"
  135.   File "我的组件位置目录名称/MSDE/Setup/SqlRun01P.msp"
  136.   File "我的组件位置目录名称/MSDE/Setup/SqlRun02.msi"
  137.   File "我的组件位置目录名称/MSDE/Setup/SqlRun02P.msp"
  138.   File "我的组件位置目录名称/MSDE/Setup/SqlRun03.msi"
  139.   File "我的组件位置目录名称/MSDE/Setup/SqlRun03P.msp"
  140.   File "我的组件位置目录名称/MSDE/Setup/SqlRun04.msi"
  141.   File "我的组件位置目录名称/MSDE/Setup/SqlRun04P.msp"
  142.   File "我的组件位置目录名称/MSDE/Setup/SqlRun05.msi"
  143.   File "我的组件位置目录名称/MSDE/Setup/SqlRun05P.msp"
  144.   File "我的组件位置目录名称/MSDE/Setup/SqlRun06.msi"
  145.   File "我的组件位置目录名称/MSDE/Setup/SqlRun06P.msp"
  146.   File "我的组件位置目录名称/MSDE/Setup/SqlRun07.msi"
  147.   File "我的组件位置目录名称/MSDE/Setup/SqlRun07P.msp"
  148.   File "我的组件位置目录名称/MSDE/Setup/SqlRun08.msi"
  149.   File "我的组件位置目录名称/MSDE/Setup/SqlRun08P.msp"
  150.   File "我的组件位置目录名称/MSDE/Setup/SqlRun09.msi"
  151.   File "我的组件位置目录名称/MSDE/Setup/SqlRun09P.msp"
  152.   File "我的组件位置目录名称/MSDE/Setup/SqlRun10.msi"
  153.   File "我的组件位置目录名称/MSDE/Setup/SqlRun10P.msp"
  154.   File "我的组件位置目录名称/MSDE/Setup/SqlRun11.msi"
  155.   File "我的组件位置目录名称/MSDE/Setup/SqlRun11P.msp"
  156.   File "我的组件位置目录名称/MSDE/Setup/SqlRun12.msi"
  157.   File "我的组件位置目录名称/MSDE/Setup/SqlRun12P.msp"
  158.   File "我的组件位置目录名称/MSDE/Setup/SqlRun13.msi"
  159.   File "我的组件位置目录名称/MSDE/Setup/SqlRun13P.msp"
  160.   File "我的组件位置目录名称/MSDE/Setup/SqlRun14.msi"
  161.   File "我的组件位置目录名称/MSDE/Setup/SqlRun14P.msp"
  162.   File "我的组件位置目录名称/MSDE/Setup/SqlRun15.msi"
  163.   File "我的组件位置目录名称/MSDE/Setup/SqlRun15P.msp"
  164.   File "我的组件位置目录名称/MSDE/Setup/SqlRun16.msi"
  165.   File "我的组件位置目录名称/MSDE/Setup/SqlRun16P.msp"
  166.   File "我的组件位置目录名称/MSDE/Setup/SqlRun17P.msp"
  167.   SetOutPath "$INSTDIR/MSDE"
  168.   File "我的组件位置目录名称/MSDE/setup.exe"
  169.   File "我的组件位置目录名称/MSDE/setup.ini"
  170.   File "我的组件位置目录名称/MSDE/setup.rll"
  171.   File "我的组件位置目录名称/MSDE/sp3readme.htm"
  172.   File "我的组件位置目录名称/MSDE/sqlresld.dll"
  173.   SetOutPath "$INSTDIR/DataBase"
  174.   ;拷贝MSDE2000安装文件到安装目录下的MSDE目录中完成
  175. SectionEnd

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

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


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

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

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

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

  255. FunctionEnd


  256. ;安装程序的卸载部分
  257. Section Uninstall
  258.   Delete "$INSTDIR/${PRODUCT_NAME}.url"
  259.   Delete "$INSTDIR/uninst.exe"
  260.   ;开始删除MSDE2000相关的安装文件
  261.   Delete "$INSTDIR/MSDE/sqlresld.dll"
  262.   Delete "$INSTDIR/MSDE/sp3readme.htm"
  263.   Delete "$INSTDIR/MSDE/setup.rll"
  264.   Delete "$INSTDIR/MSDE/setup.ini"
  265.   Delete "$INSTDIR/MSDE/setup.exe"
  266.   Delete "$INSTDIR/MSDE/Setup/SqlRun17P.msp"
  267.   Delete "$INSTDIR/MSDE/Setup/SqlRun16P.msp"
  268.   Delete "$INSTDIR/MSDE/Setup/SqlRun16.msi"
  269.   Delete "$INSTDIR/MSDE/Setup/SqlRun15P.msp"
  270.   Delete "$INSTDIR/MSDE/Setup/SqlRun15.msi"
  271.   Delete "$INSTDIR/MSDE/Setup/SqlRun14P.msp"
  272.   Delete "$INSTDIR/MSDE/Setup/SqlRun14.msi"
  273.   Delete "$INSTDIR/MSDE/Setup/SqlRun13P.msp"
  274.   Delete "$INSTDIR/MSDE/Setup/SqlRun13.msi"
  275.   Delete "$INSTDIR/MSDE/Setup/SqlRun12P.msp"
  276.   Delete "$INSTDIR/MSDE/Setup/SqlRun12.msi"
  277.   Delete "$INSTDIR/MSDE/Setup/SqlRun11P.msp"
  278.   Delete "$INSTDIR/MSDE/Setup/SqlRun11.msi"
  279.   Delete "$INSTDIR/MSDE/Setup/SqlRun10P.msp"
  280.   Delete "$INSTDIR/MSDE/Setup/SqlRun10.msi"
  281.   Delete "$INSTDIR/MSDE/Setup/SqlRun09P.msp"
  282.   Delete "$INSTDIR/MSDE/Setup/SqlRun09.msi"
  283.   Delete "$INSTDIR/MSDE/Setup/SqlRun08P.msp"
  284.   Delete "$INSTDIR/MSDE/Setup/SqlRun08.msi"
  285.   Delete "$INSTDIR/MSDE/Setup/SqlRun07P.msp"
  286.   Delete "$INSTDIR/MSDE/Setup/SqlRun07.msi"
  287.   Delete "$INSTDIR/MSDE/Setup/SqlRun06P.msp"
  288.   Delete "$INSTDIR/MSDE/Setup/SqlRun06.msi"
  289.   Delete "$INSTDIR/MSDE/Setup/SqlRun05P.msp"
  290.   Delete "$INSTDIR/MSDE/Setup/SqlRun05.msi"
  291.   Delete "$INSTDIR/MSDE/Setup/SqlRun04P.msp"
  292.   Delete "$INSTDIR/MSDE/Setup/SqlRun04.msi"
  293.   Delete "$INSTDIR/MSDE/Setup/SqlRun03P.msp"
  294.   Delete "$INSTDIR/MSDE/Setup/SqlRun03.msi"
  295.   Delete "$INSTDIR/MSDE/Setup/SqlRun02P.msp"
  296.   Delete "$INSTDIR/MSDE/Setup/SqlRun02.msi"
  297.   Delete "$INSTDIR/MSDE/Setup/SqlRun01P.msp"
  298.   Delete "$INSTDIR/MSDE/Setup/SqlRun01.msi"
  299.   Delete "$INSTDIR/MSDE/Setup/SqlRun.cab"
  300.   Delete "$INSTDIR/MSDE/Setup/Sql2000.msi"
  301.   Delete "$INSTDIR/MSDE/readme.txt"
  302.   Delete "$INSTDIR/MSDE/MSM/UPGRADE.MSM"
  303.   Delete "$INSTDIR/MSDE/MSM/我的组件位置目录名称.MSM"
  304.   Delete "$INSTDIR/MSDE/MSM/SQLSVR.MSM"
  305.   Delete "$INSTDIR/MSDE/MSM/SQLAGENT.MSM"
  306.   Delete "$INSTDIR/MSDE/MSM/SHARED.MSM"
  307.   Delete "$INSTDIR/MSDE/MSM/SEM.MSM"
  308.   Delete "$INSTDIR/MSDE/MSM/REPL.MSM"
  309.   Delete "$INSTDIR/MSDE/MSM/msvcrt.msm"
  310.   Delete "$INSTDIR/MSDE/MSM/msvcirt.msm"
  311.   Delete "$INSTDIR/MSDE/MSM/msstkprp.msm"
  312.   Delete "$INSTDIR/MSDE/MSM/mfc42.msm"
  313.   Delete "$INSTDIR/MSDE/MSM/DTS.MSM"
  314.   Delete "$INSTDIR/MSDE/MSM/DTC.MSM"
  315.   Delete "$INSTDIR/MSDE/MSM/DMO.MSM"
  316.   Delete "$INSTDIR/MSDE/MSM/DEV_SCM.MSM"
  317.   Delete "$INSTDIR/MSDE/MSM/CONNECT.MSM"
  318.   Delete "$INSTDIR/MSDE/MSM/atl.msm"
  319.   Delete "$INSTDIR/MSDE/MSM/2052/我的组件位置目录名称_RES.MSM"
  320.   Delete "$INSTDIR/MSDE/MSM/2052/SQLSVR_RES.MSM"
  321.   Delete "$INSTDIR/MSDE/MSM/2052/SQLBASE.MSM"
  322.   Delete "$INSTDIR/MSDE/MSM/2052/SQLAGENT_RES.MSM"
  323.   Delete "$INSTDIR/MSDE/MSM/2052/SEM_RES.MSM"
  324.   Delete "$INSTDIR/MSDE/MSM/2052/REPL_RES.MSM"
  325.   Delete "$INSTDIR/MSDE/MSM/2052/DTS_RES.MSM"
  326.   Delete "$INSTDIR/MSDE/MSM/2052/DMO_RES.MSM"
  327.   Delete "$INSTDIR/MSDE/MSM/1033/我的组件位置目录名称_RES.MSM"
  328.   Delete "$INSTDIR/MSDE/MSM/1033/SQLSVR_RES.MSM"
  329.   Delete "$INSTDIR/MSDE/MSM/1033/SQLAGENT_RES.MSM"
  330.   Delete "$INSTDIR/MSDE/MSM/1033/SEM_RES.MSM"
  331.   Delete "$INSTDIR/MSDE/MSM/1033/REPL_RES.MSM"
  332.   Delete "$INSTDIR/MSDE/MSM/1033/DTS_RES.MSM"
  333.   Delete "$INSTDIR/MSDE/MSM/1033/DMO_RES.MSM"
  334.   Delete "$INSTDIR/MSDE/Msi/InstMsiW20.exe"
  335.   Delete "$INSTDIR/MSDE/Msi/InstMsiW.exe"
  336.   Delete "$INSTDIR/MSDE/Msi/InstMsi20.exe"
  337.   Delete "$INSTDIR/MSDE/Msi/InstMsi.exe"
  338.   Delete "$INSTDIR/MSDE/autorun.inf"
  339.   ;开始删除NET2.0相关的安装文件
  340.   Delete "$INSTDIR/Framework2.0/NetFx20SP2_x86.exe"
  341.   ;开始删除主程序相关的安装文件
  342.   Delete "$INSTDIR/我的工程项目名称.application"
  343.   Delete "$INSTDIR/我的应用程序可执行文件.exe"
  344.   Delete "$INSTDIR/我的应用程序可执行文件.exe.config"
  345.   Delete "$INSTDIR/我的应用程序可执行文件.exe.manifest"
  346.   Delete "$INSTDIR/我的工程项目名称.pdb"
  347.   Delete "$INSTDIR/我的工程项目名称.suo"
  348.   Delete "$INSTDIR/我的工程项目名称.vshost.application"
  349.   Delete "$INSTDIR/我的工程项目名称.vshost.exe"
  350.   Delete "$INSTDIR/我的工程项目名称.vshost.exe.config"
  351.   Delete "$INSTDIR/我的工程项目名称.vshost.exe.manifest"
  352.   ;开始删除开始菜单和桌面上相关的快捷方式文件
  353.   Delete "$SMPROGRAMS/我的软件名称/卸载软件.lnk"
  354.   Delete "$SMPROGRAMS/我的软件名称/官方网站.lnk"
  355.   Delete "$STARTMENU.lnk"
  356.   Delete "$DESKTOP/我的软件名称.lnk"
  357.   ;开始删除对应的目录
  358.   RMDir "$SMPROGRAMS/我的软件名称"
  359.   RMDir "$INSTDIR/MSDE/Setup"
  360.   RMDir "$INSTDIR/MSDE/MSM/2052"
  361.   RMDir "$INSTDIR/MSDE/MSM/1033"
  362.   RMDir "$INSTDIR/MSDE/MSM"
  363.   RMDir "$INSTDIR/MSDE/Msi"
  364.   RMDir "$INSTDIR/MSDE"
  365.   RMDir "$INSTDIR/Framework2.0"
  366.   RMDir "$INSTDIR"
  367.   RMDir ""

  368.   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
  369.   DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
  370.   SetAutoClose true
  371. SectionEnd

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

  377. Function un.onUninstSuccess
  378.   HideWindow
  379.   MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地从你的计算机移除。"
  380. FunctionEnd
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-5-19 19:01 , Processed in 0.104499 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表