1.使用VS 自帶的打包工具,製做winform安裝項目redis
開發環境:VS 2008 Accesssql
操做系統:Windows XP數據庫
開發語言:C#windows
效果:服務器
右鍵選擇可執行文件(PersonFinance.exe),建立快捷方式,進行重命名"**公司**管理系統",將該快捷方式拖放到 '用戶的"程序"菜單' 中。重複該步驟將新建的快捷方式添加到 "用戶桌面" 文件夾中網絡
最好在用戶菜單中創建一個文件夾,存放安裝程序框架
勾選"建立用於安裝系統必備組件的安裝程序",在安裝系統必備組件列表中,選擇編輯器
1)、Windows Installer 3.1(必選)工具
2)、.NET Framework 3.5 (可選)參考最後說明spa
3)、Crystal Report Basic for Visual Studio2008(x86,x64) (可選) 項目中用到了水晶報表就須要勾選此項
重要一點:勾選"從與個人應用程序相同的位置下載系統必備組件(D)",其實意思就是說你勾選後,生成安裝項目時,在你安裝項目的路徑下,會有你在系統必備組件列表中勾選的組件.(系統自動完成,這一點還不錯,不須要你本身去下載組件)
首先呢,在"C:\WINDOWS\system32"路徑下,找到msiexec.exe 添加到應用程序文件夾中,建立快捷方式,並命名"卸載管理系統"或"Uninstall"
其次呢,選擇安裝項目的ProductCode
右鍵選擇卸載程序的快捷方式,進入屬性,在Arguments選項中 輸入/x 及ProductCode; 例如:/x {6931BD71-5C5E-4DA1-A861-14C7D1A78B97}
將卸載程序同時存放到用戶的開始菜單的文件夾中(在第四步中新建)
應將「msiexec.exe」排除,緣由是其源文件「C:\WINDOWS\system32\msiexec.exe」受到「Windows 系統文件保護」;
兩個或多個對象具備相同的目標位置(「[targetdir]\model.dll」)
解決方案:
第一種:都不處理
第二種:第一類警告,能夠編寫卸載程序
第二種警告:刪除相同的文件
一、.net framework 框架是可選的,不必定說你採用的是VS2008開發就必需要使用.net framework 3.5,只要你在程序中沒有使用到.net framework 3.5 的特性好比(LINQ),那麼你選擇框架時,是能夠選擇2.0的,爲何?由於2.0只有20多MB,而3.5則有200多MB。
更改方式:在安裝項目下面有個檢測到的依賴項文件,雙擊裏面的Microsoft .net framework,進入了啓動條件選擇卡,右鍵選擇.net frmaework 在Version中選擇你所需的.net framework框架
1. 在「文件」菜單上指向「添加項目」,而後選擇「新建項目」。
2. 在「添加新項目」對話框中,選擇「項目類型」窗格中的「安裝和部署項目」,而後選擇「模板」窗格中的「安裝項目」。在「名稱」框中鍵入 setup1。
3. 單擊「肯定」關閉對話框。
4. 項目被添加到解決方案資源管理器中,而且文件系統編輯器打開。
5. 在「屬性」窗口中,選擇 ProductName 屬性,並鍵入 信息管理系統 。
1. 在「文件系統編輯器」中,選擇「應用程序文件夾」。在「操做」菜單上,指向「添加」,而後選擇「項目輸出」。
2. 在「添加項目輸出組」對話框中,選擇「項目」下拉列表中的「你的程序」。
3. 單擊「肯定」關閉對話框。
4. 從列表中選擇「主輸出」和「內容文件」組,而後單擊「肯定」。
1. 在「文件」菜單上指向「新建」,而後選擇「項目」。
2. 在「新建項目」對話框中,選擇「項目類型」窗格中的「Visual Basic 項目」,而後選擇「模板」窗格中的「類庫」。在「名稱」框中鍵入 installDB。
3. 單擊「打開」關閉對話框。
4. 從「項目」菜單中選擇「添加新項」。
5. 在「添加新項」對話框中選擇「安裝程序類」。在「名稱」框中鍵入 installDB。
6. 單擊「肯定」關閉對話框。
7. 詳細代碼附後。
1. 在解決方案資源管理器中選擇「setup1」項目。在「視圖」菜單上指向「編輯器」,而後選擇「用戶界面」。
2. 在用戶界面編輯器中,選擇「安裝」下的「啓動」節點。在「操做」菜單上,選擇「添加對話框」。
3. 在「添加對話框」對話框中,選擇「許可協議」對話框,而後單擊「肯定」關閉對話框。
4. 在「添加對話框」對話框中,選擇「文本框 (A)」對話框,而後單擊「肯定」關閉對話框。
5. 在「操做」菜單上,選擇「上移」。重複此步驟,直到「文本框 (A)」對話框位於「安裝文件夾」節點之上。
6. 在「屬性」窗口中,選擇 BannerText 屬性並鍵入:安裝數據庫.
7. 選擇 BodyText 屬性並鍵入:安裝程序將在目標機器上安裝數據庫
8. 選擇 Edit1Label 屬性並鍵入:數據庫名稱:
9. 選擇 Edit1Property 屬性並鍵入 CUSTOMTEXTA1
10. 選擇 Edit1Value 屬性並鍵入:dbservers
11. 選擇 Edit2Label 屬性並鍵入:服務器名:
12. 選擇 Edit2Property 屬性並鍵入 CUSTOMTEXTA2
13. 選擇 Edit2Value 屬性並鍵入:(local)
14. 選擇 Edit3Label 屬性並鍵入:用戶名:
15. 選擇 Edit3Value 屬性並鍵入:sa
16. 選擇 Edit3Property 屬性並鍵入 CUSTOMTEXTA3
17. 選擇 Edit4Label 屬性並鍵入:密碼:
18. 選擇 Edit4Property 屬性並鍵入 CUSTOMTEXTA4
19. 選擇 Edit2Visible、Edit3Visible 和 Edit4Visible 屬性,並將它們設置爲 true
1. 在解決方案資源管理器中選擇「setup1」項目。在「視圖」菜單上指向「編輯器」,而後選擇「自定義操做」。
2. 在自定義操做編輯器中選擇「安裝」節點。在「操做」菜單上,選擇「添加自定義操做」。
3. 在「選擇項目中的項」對話框中,雙擊「應用程序文件夾」。
4. 選擇「主輸出來自 installDB(活動)」項,而後單擊「肯定」關閉對話框。
5. 在「屬性」窗口中,選擇 CustomActionData 屬性並鍵入「/dbname=[CUSTOMTEXTA1] /server=[CUSTOMTEXTA2] /user=[CUSTOMTEXTA3] /pwd=[CUSTOMTEXTA4] /targetdir="[TARGETDIR]\"」。
附:/targetdir="[TARGETDIR]\"是安裝後的目標路徑,爲了在installDB類中得到安裝後的路徑,咱們設置此參數。
1. 將SQL Server備份成文件DB.dat添加到「setup1」項目(在企業管理器中右擊數據庫->全部工做->備份數據庫,備份成一個文件,取名爲DB.dat)
2. 將安裝文件LisenceFile.rtf添加到「setup1」項目
3. 在用戶界面編輯器中,選擇許可協議,設置LisenceFile屬性爲LisenceFile.rtf文件
4.通常會自動將依賴項添加到「檢測到的依賴項」,若是沒有,那麼咱們要手動將其加入步驟5)
Crystal_Managed2003.msm (若是有水晶報表)
dotnetfxredist_x86.msm (.net必定是必須的)
... (若是有引用其餘的dll)
5. 若是使用了水晶報表,手動加入要包含的文件:項目-->添加-->合併模塊(添加你的程序文件) (包括dotNetFramework和MDAC27),位於:C:\Program Files\Common Files\Merge Modules\ 下,*爲必要的
具體功能以下:
(託管組件 MSM 處理全部託管組件的分發,其中包括 Windows 窗體查看器、Web 窗體查看器和全部 Crystal Decisions 命名空間)
* Crystal_Managed2003.msm
Crystal_Managed2003_chs.msm
(對於使報表運行所需的全部其餘文件,由數據庫訪問 MSM 處理其分發。其中包括數據庫、導出和圖表驅動程序。)
* Crystal_Database_access2003.msm
Crystal_Database_access2003_chs.msm
(KeyCode MSM 處理 Crystal Decisions 密鑰號碼的安裝,注意是添加合併模塊,不然沒有「MergeMouduleProperties」屬性)
* Crystal_regwiz2003.msm
(若是報表文件使用了 ADO.NET 的 dataset 數據集對象,那麼 VC_User_CRT71_RTL_X86_---.msm 和 VC_User_STL71_RTL_X86_---.msm 模塊也必須包含在安裝工程中。並且這兩個模塊的文件安裝屬性的"Module Retargetable Folder"項必須修改爲爲系統目錄)
VC_User_CRT71_RTL_X86_---.msm
VC_User_STL71_RTL_X86_---.msm
(不少人常常出現查詢錯誤,不妨加上這個)
5. 打開解決方案-->右鍵點擊Crystal_regwiz2003.msm的屬性,在「MergeMouduleProperties」裏的 「License Key」填入:AAP5GKS0000GDE100DS(這個是你生成Crystal Report是用到的註冊號的密碼!)
1.在打包項目中添加文件msiexec.exe(通常可在c:\windows\system32\下找到)
2.在文件系統視圖中選擇應用程序文件夾,在msiexec.exe上按右鍵,選擇創建快捷方式,重命名快捷方式為"卸載".
3.更改此快捷方式的Arguments 爲"/x {產品id}",產品id的值為打包項目的ProductCode屬性值.
方法二:(推薦)
1.先生成安裝包,記下ProductCode(選擇解決方案資源管理器根目錄如setup1,再查看屬性標籤,不是右鍵中的屬性),下面要用到
2.用VS.net創建一個新的控制檯程序uninst.exe文件
'power by: landlordh
'for 2000,xp,2003
Module uninstall
Sub Main()
Dim myProcess As Process = New Process
If System.Environment.OSVersion.ToString.IndexOf("NT 5") Then
myProcess.Start("msiexec", "/X{2B65D4A9-C146-4808-AB4B-321FB0779559}") '改成本身的ProductCode
End If
myProcess.Close()
End Sub
End Module
3.將控制檯程序BIN目錄的exe文件加入到打包程序文件中
C#的c/s的winform,數據庫爲sql2k,
應用程序包括以下文件:
1.exe,1.dll,1.jpg,1.xml,donetsetup.exe以及數據庫文件1.mdf,1.ldf(或數據庫安裝文件1.sql)。
打包要求:
(1)自動檢測是否安裝donet環境,如沒安裝,則提示自動安裝。
(2)安裝時自動安裝數據庫(附加mdf或運行1.sql)。
(3)在安裝界面上能自定義一些安裝圖片或提示。
六個子項:文件系統、註冊表、文件類型、用戶界面、自定義操做、啓動條件。
其中咱們在打包過程當中常常要用到的有文件系統、註冊表、用戶界面和自定義操做。
嚮應用程序文件夾、用戶的程序菜單、用戶桌面下輸出項目文件(四種類型:文件夾、項目輸出、文件和程序集),還能夠建立快捷方式(通常是放在桌面或程序菜單中)文件系統編輯器表示目標計算機上的文件系統,使用該工具能夠指定應用程序文件安裝的位置。在大多數狀況下,但願將應用程序文件放在 Application Folder 中或在 Application Folder 下建立的子文件夾中。安裝在目標計算機上之後,來自 Application Folder 的文件將位於 Program Files/Manufacturer/ProductName文件夾中,其中 Manufacturer 是安裝 Visual Studio 時使用的公司名,而 ProductName 是用於部署項目的名稱。能夠在安裝項目的屬性窗口中重寫這兩個設置。
能夠向註冊表中插入鍵,在安裝應用程序的同時建立註冊表項。
用戶界面:系統自動提供一組在安裝期間顯示的默認對話框。根據正在構建的項目的類型,所提供的這組對話框有所不一樣。使用用戶界面編輯器,能夠將對話框從新排序或刪除對話框。在編輯器中顯示的對話框樹包含兩部分:安裝與管理員安裝。安裝部分包括終端用戶運行安裝程序時顯示的對話框,而管理員安裝部分包含系統管理員將安裝程序上傳到某個網絡位置時顯示的對話框。若是想構建一個沒有用戶界面的安裝,只需在對話框樹上刪除安裝部分中的全部對話框。或者,能夠從一組可用的模板將對話框添加到安裝項目中。
啓動條件:使用啓動條件編輯器來定義成功運行安裝所必須知足的條件。例如,能夠檢查特定版本的操做系統。若是用戶嘗試在一個不知足條件的系統上安裝,安裝將停止。還能夠配置啓動條件來搜索目標計算機上的某個特定文件、註冊表項或組件。在開始安裝時,Windows Installer 執行搜索和條件評估,並按啓動條件編輯器中所示的順序執行。
自定義操做提供了一種在安裝結束時執行任務的機制。例如,您可能但願在安裝應用程序以前先配置好數據庫,此時您能夠用自定義操做來完成數據庫的建立。自定義操做構建爲單獨的 .dll 或 .exe 文件,而後使用自定義操做編輯器添加到項目中,其中這些操做與不一樣的安裝階段有關。自定義操做編輯器包括幾個單獨的文件夾,用於放置執行 Install、Commit、Rollback 或 Uninstall 任務的二進制文件。
InstallerClass屬性:若是添加的自定義操做是繼承自Installer類(注意放在哪一個文件夾下就要重載哪一個相應的方法),該屬性設爲True,不然該屬性設爲False(注意:爲False時要指定.dll文件的入口——EntryPoint屬性)。
能夠在安裝應用程序中提供一個卸載的快捷方式,藉助於系統提供的卸載程序msiexec.exe(在c:/windows/system32目錄下),並把安裝程序項目的ProductCode屬性值賦給快捷方式的Arguments屬性(注意:在屬性值前加/x)
System.Configuration.Install命名空間下
Installer類有四個能夠重載的方法,分別是Install,Commit,Rollback,Uninstall。
分別對應於自定義操做中的四個文件夾:安裝、提交、回滾、卸載。