NSIS:製作C#應用程序安裝包

——摘錄自  輕狂編程資源網

           NSIS 是“Nullsoft 腳本安裝系統”(Nullsoft Scriptable Installation System)的縮寫,它是一個免費的安裝、卸載系統。它的特點:腳本簡潔高效;系統開銷小;當然進行安裝、卸載、設置系統設置、解壓文件等等更不在話下,幾乎可以做所有的事情。

        以下是32位下NSIS製作安裝包最基本的操作,供初學者入門之用。64位可參考:http://blog.csdn.net/yysyangyangyangshan/article/details/7172294

      NSIS安裝包下載地址:http://download.csdn.net/detail/yysyangyangyangshan/3994241,版本高一些,但是製作安裝包基本步驟都一樣。

  思路

  腳本嚮導+修改代碼=個性化安裝包

  步驟

  一、利用嚮導製作安裝包

  01、安裝NSISv2.11簡體中文增強版便已包含上述兩款軟件。安裝完成後啓動HM VNISEdit,選擇“文件”菜單中“新建腳本:嚮導”,如圖:

  02、在彈出的“NSIS腳本嚮導”對話框中單擊“下一步”按鈕,如圖:

       

  03、設置應用程序信息,如軟件名稱、版本、出版人等。當然最後一個網站可以留空,如果設置了,則安裝包會生成一個對應網址的“Internet 快捷方式”。如圖:

       

  04、設置程序選項,如安裝包圖標、安裝程序文件、安裝包語言[這裏選“SimChinese”]、用戶圖形界面及壓縮方式等,我們可以選用默認值,也可以點擊對應項目的按鈕或下拉菜單更改設置,如圖:

        

  05、設置是否使用“閃屏”和“音樂”效果,如圖:

        

  06、設置應用程序默認安裝目錄及授權信息,授權文件建議使用.txt或。rtf格式。如圖:

       

  07、添加應用程序文件,即我們要打包的文件,可以使用默認的“Mainsection”,也可以根據需要進行更改或新建組別,如果組比較多時,你也可以設置是否“允許用戶選擇要安裝的組件”,如圖:

       

  完畢後進行“添加文件”操作,選定我們要打包的文件,如圖:

       

  全部添加完成後返回下圖界面,執行下一步操作。

       

  08、設置開始菜單中文件夾名稱及快捷方式,這裏我們使用默認值,如圖,按“下一步”。

       

  09、指定安裝後要運行的程序,同上用默認值並設置相關運行參數及描述,如果你和我一樣懶的話,或不想在安裝後運行任何程序,則留空即可,如圖:

        

  10、這步是有關卸載程序的相關信息,如卸載時的提示、卸載的圖標等,如圖:

        

  11、至此完成嚮導,如圖,鉤選“保存腳本”、“轉換文件路徑到相關路徑”及“編譯腳本”。

        

  提示保存腳本路徑並自動編譯腳本,我們可以按或F9運行安裝程序進行預覽,嚮導產生的安裝包效果圖如圖所示:

       

      

  二、修改代碼以個性化安裝包

  1、修改軟件LOGO:

  在源代碼

  1. ; MUI 預定義常量 
  2. !define MUI_ABORTWARNING 
  3. !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico" 
  4. !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico" 
; MUI 預定義常量
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"

  下面添加下列代碼:

  1. !define MUI_WELCOMEFINISHPAGE_BITMAP "E:\其他\我的文檔\輕狂程序\flibpoto\flibpoto.bmp" 
!define MUI_WELCOMEFINISHPAGE_BITMAP "E:\其他\我的文檔\輕狂程序\flibpoto\flibpoto.bmp"

  註釋:引號內爲位圖的路徑

  效果如圖:

       

  2、修改安裝包標題:

  接着在上面的位置下面添加如下代碼:

  1. !define MUI_WELCOMEPAGE_TITLE "\r\n   輕狂圖片瀏覽器v1.0安裝嚮導"  
!define MUI_WELCOMEPAGE_TITLE "\r\n   輕狂圖片瀏覽器v1.0安裝嚮導" 

  註釋:\r\n爲換行標誌

  效果如圖:

       

  3、修改軟件說明,接着在上面的位置下面添加如下代碼:

  1. !define MUI_WELCOMEPAGE_TEXT "  輕狂圖片瀏覽器是少輕狂開發的一個圖片瀏覽編輯軟件,能夠方便地查看並編輯圖片文件。\r\n\r\n  軟件作者:少輕狂\r\n\r\n  官方網址:www.flighty.cn\r\n\r\n  <pre class="csharp" name="code">{1}</pre><br> 
  2. CLICK"  
  3. <pre></pre> 
  4. <p>  效果如圖: </p> 
  5. <p>        <img alt="" src="http://hi.csdn.net/attachment/201201/3/0_1325553177Fd0y.gif"></p> 
  6. <p>  4、在源代碼: </p> 
  7. <pre class="csharp" name="code">ShowInstDetails show  
  8. ShowUnInstDetails show </pre> 
  9. <p>後添加:</p> 
  10. <pre class="csharp" name="code">BrandingText " 輕狂編程資源網 www.flighty.cn"</pre> 
  11. <p>  效果如圖: </p> 
  12. <p>        <img alt="" src="http://hi.csdn.net/attachment/201201/3/0_1325553288DliL.gif"></p> 
  13. <p>  5、在完成頁面添加“安裝說明”: </p> 
  14. <p>  只要在源代碼: </p> 
  15. <pre class="csharp" name="code">; MUI 預定義常量</pre> 
  16. <p>  下面添加: </p> 
  17. <pre class="csharp" name="code">!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\安裝說明.txt" 
  18. !define MUI_FINISHPAGE_SHOWREADME_TEXT "查看 安裝說明" </pre> 
  19. <p>  效果如圖: </p> 
  20. <p>        <img alt="" src="http://hi.csdn.net/attachment/201201/3/0_1325553372Nzb6.gif"></p> 
  21. <p>  6、閃屏界面,可以在源代碼中加入下列代碼即可:</p> 
  22. <p>A、普通效果 </p> 
  23. <pre class="html" name="code">Function .onInit  
  24. SetOutPath $TEMP  
  25. File /oname=spltmp.bmp "G:\Temp\Nsisres\splash.bmp"  
  26.  
  27. splash::show 2300 $TEMP\spltmp  
  28.  
  29. Pop $0  
  30.  
  31. FunctionEnd</pre> 
  32. <p>B、漸隱閃屏 </p> 
  33. <pre class="html" name="code">Function .OnInit  
  34. InitPluginsDir  
  35. File /oname=$PLUGINSDIR\splash.bmp "G:\Temp\Nsisres\splash.bmp"  
  36. advsplash::show 1500 800 600 -1 $PLUGINSDIR\splash  
  37. Functionend 
  38. </pre> 
  39. <p>7、背景音樂[貫穿安裝過程] </p> 
  40. <pre class="html" name="code">Var hmci  
  41. Function .OnInit  
  42. InitPluginsDir  
  43. SetOutPath $PLUGINSDIR  
  44. File "G:\Temp\Nsisres\music.mp3"  [說明:源MP3的存放路徑]  
  45. System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\music.mp3") i .r0  
  46. SendMessage $0 0x0465 0 "STR:play repeat"  
  47. System::Call user32.dll::ShowWindow(i r0, i 0)  
  48. StrCpy $hmci $0  
  49. Functionend  
  50.  
  51. Section  
  52. ;add your codes  
  53. SendMessage $hmci 0x0010 0 0  
  54. Sectionend</pre> 
  55. <p>附錄 </p> 
  56. <pre class="html" name="code">  1、閃屏效果(漸現漸隱)  
  57.  
  58. Function .OnInit  
  59. InitPluginsDir  
  60. File /oname=$PLUGINSDIR\splash.bmp c:\test.bmp  
  61. advsplash::show 1500 800 600 -1 $PLUGINSDIR\splash  
  62. Functionend 
  63.   
  64.  
  65.   2、背景音樂1(貫穿安裝全過程)  
  66.  
  67. Function .OnInit  
  68. InitPluginsDir  
  69. SetOutPath $PLUGINSDIR  
  70. File "c:\a.mp3"  
  71. System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\a.mp3") i .r0  
  72. SendMessage $0 0x0465 0 "STR:play repeat"  
  73. System::Call user32.dll::ShowWindow(i r0, i 0)  
  74. StrCpy $hmci $0  
  75. Functionend  
  76.  
  77. Section  
  78. ;add your codes  
  79. SendMessage $hmci 0x0010 0 0  
  80. Sectionend 
  81.   
  82.  
  83.   3、背景音樂2  
  84.  
  85. Section/Function  
  86. SetOutPath $PLUGINSDIR  
  87. File $WINDIR\MEDIA\chimes.wav  
  88. BgImage::Sound /NOUNLOAD /WAIT "$PLUGINSDIR\chimes.wav"  
  89. BgImage::Clear /NOUNLOAD  
  90. Sectionend/Functionend 
  91.   
  92.  
  93.   4、閃屏效果[漸隱]+背景音樂[全程]  
  94.  
  95. outfile test.exe  
  96. Var hmci  
  97.  
  98. Function .OnInit  
  99. InitPluginsDir  
  100. SetOutPath $PLUGINSDIR  
  101. File "c:\a.mp3"  
  102. System::Call msvfw32.dll::MCIWndCreate(i 0, i 0,i 0x0070, t "$PLUGINSDIR\a.mp3") i .r0  
  103. SendMessage $0 0x0465 0 "STR:play repeat"  
  104. System::Call user32.dll::ShowWindow(i r0, i 0)  
  105. StrCpy $hmci $0  
  106.  
  107. File /oname=$PLUGINSDIR\splash.bmp c:\test.bmp  
  108. advsplash::show 1500 800 600 -1 $PLUGINSDIR\splash  
  109.  
  110. Functionend  
  111.  
  112. Section  
  113. ;add your codes  
  114. sleep 5000  
  115. SendMessage $hmci 0x0010 0 0  
  116. Sectionend 
  117.   
  118.  
  119.   5、如何把安裝頁面中的“Setup將安裝……”中的Setup改成別的字 
  120.  
  121.   只需在  
  122.  
  123. !insertmacro MUI_PAGE_DIRECTORY 
  124.   
  125.  
  126.   前面添加一行  
  127.  
  128. !define MUI_DIRECTORYPAGE_TEXT_TOP "你需要的文字" 
  129.   
  130.  
  131.   6、設置了自定義安裝、卸載圖標  
  132.  
  133. !define MUI_ICON "G:\Temp\Nsisres\Win 安裝.ico"  
  134. !define MUI_UNICON "G:\Temp\Nsisres\Win 卸載.ico"</pre> 
  135. <p><br> 
  136. </p> 
  137. <p> <br> 
  138. </p> 
  139. <p> </p> 
  140. <pre></pre> 
  141. <pre></pre> 
  142. <pre></pre> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章