您好,登錄后才能下訂單哦!
本篇內容主要講解“C#項目打包及自動安裝SQL Sever數據庫的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#項目打包及自動安裝SQL Sever數據庫的方法”吧!
C#項目打包一).創建部署項目
1. 在“文件”菜單上指向“添加項目”,然后選擇“新建項目”。
2. 在“添加新項目”對話框中,選擇“項目類型”窗格中的“安裝和部署項目”,然后選擇“模板”窗格中的“安裝項目”。在“名稱”框中鍵入 setup1。
3. 單擊“確定”關閉對話框。
4. 項目被添加到解決方案資源管理器中,并且文件系統編輯器打開。
5. 在“屬性”窗口中,選擇 ProductName 屬性,并鍵入 信息管理系統 。
C#項目打包二).將 主程序 項目的輸出添加到部署項目中
1. 在“文件系統編輯器”中,選擇“應用程序文件夾”。在“操作”菜單上,指向“添加”,然后選擇“項目輸出”。
2. 在“添加項目輸出組”對話框中,選擇“項目”下拉列表中的“你的程序”。
3. 單擊“確定”關閉對話框。
4. 從列表中選擇“主輸出”和“內容文件”組,然后單擊“確定”。
C#項目打包三).創建安裝程序類
1. 在“文件”菜單上指向“新建”,然后選擇“項目”。
2. 在“新建項目”對話框中,選擇“項目類型”窗格中的“Visual Basic 項目”,然后選擇“模板”窗格中的“類庫”。在“名稱”框中鍵入 installDB。
3. 單擊“打開”關閉對話框。
4. 從“項目”菜單中選擇“添加新項”。
5. 在“添加新項”對話框中選擇“安裝程序類”。在“名稱”框中鍵入 installDB。
6. 單擊“確定”關閉對話框。
7. 詳細代碼附后。
C#項目打包四).創建自定義安裝對話框
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
C#項目打包五).創建自定義操作
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文件加入到打包程序文件中,在程序組創建uninst.exe的快捷方式
附:
installdb.vb類,要添加引用 system.configuration.install.dll :
Imports System.ComponentModel
Imports System.Configuration.Install
Public Class Installer1
Inherits System.Configuration.Install.Installer
#Region " 組件設
計器生成的代碼 "
Public Sub New()
MyBase.New()
’該調用是組件設計器所必需的。
InitializeComponent()
’在 InitializeComponent() 調用之后添加任何初始化
End Sub
’Installer 重寫 dispose 以清理組件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub
’組件設計器所必需的
Private components As System.ComponentModel.IContainer
’注意: 以下過程是組件設計器所必需的
’可以使用組件設計器來修改此過程。
’不要使用代碼編輯器來修改它。
Private Sub InitializeComponent() components = New System.ComponentModel.Container End Sub #End Region Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary) MyBase.Install(stateSaver) If Not InstallDB() Then ’失敗,反安裝 Me.Uninstall(stateSaver) Exit Sub End If DeleteFile(String.Format("{0}DB.dat", Me.Context.Parameters.Item("targetdir"))) End Sub Public Overrides Sub Uninstall(ByVal stateSaver As System.Collections.IDictionary)
到此,相信大家對“C#項目打包及自動安裝SQL Sever數據庫的方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。