轉:winform 打包自動安裝資料庫

來源:互聯網
上載者:User

標籤:

vs2005 打包,並自動安裝SQL資料庫.
建立部署項目    
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。 
分別對應於自訂動作中的四個檔案夾:安裝、提交、復原、卸載。 
資料庫安裝: 
1、 附加資料庫 
2、 執行建立資料庫的Sql語句 
3、 完全備份的資料庫檔案還原 
可以將能產生資料庫的的檔案(分離的資料庫檔案、Sql指令檔或完全備份檔案)部署到應用程式檔案夾下,然後在重載的Install方法裡加入產生資料庫代碼(注意:產生資料庫的代碼應該在調用基類的Install方法後)。 
資料庫的卸載:首先刪除資料庫,再調用基類的Uninstall方法刪除應用程式檔案夾裡的檔案(順序不能亂)。 
幾個特殊點: 
1、 檔案系統中的AlawaysCreate屬性:本屬性可以指定為False,然後Condition屬性為空白時相當於AlawaysCreate屬性為True(Transitive屬性必須為True才計算Condition屬性的值)。Condition 屬性可用於向安裝程式添加條件邏輯,例如,僅為特定的作業系統版本安裝某個檔案。它還可以與檔案搜尋、註冊表搜尋或組件搜尋一起使用,以在找不到指定項時使安裝過程終止。可以是 Windows Installer 條件或屬性,Property 屬性中包含的值,檔案、註冊表或組件搜尋中的 Name 屬性,也可以是使用邏輯運算子的上述語句的組合。 
2、 建立捷徑(在程式中建立,可以有作為附加任務,根據使用者的選擇情況,有選擇的建立): 
添加引用:COM 選項卡並選擇 Windows Script Host Object Model 
建立對象:建立一個 WshShell 的執行個體對象,接著通過該對象的 CreateShortcut 方法來建立 IWshShortcut 介面的執行個體對象,傳遞給 CreateShortcut 方法的參數是將要建立的捷徑的完整路徑(包括該捷徑的名字)。
設定屬性:TargetPath、WorkingDirectory、WindowStyle、Description、IconLocation 
產生捷徑:調用 IWshShortcut.Save 方法產生捷徑檔案。
url:http://greatverve.cnblogs.com/archive/2011/12/16/winform-install-data.html

轉:winform 打包自動安裝資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.