熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#項目打包,並自動安裝SQL數據庫[3]

2013-11-13 11:07:26  來源: .NET編程 

 
  六)打包時加入卸載功能

  方法一

  在打包項目中添加文件msiexecexe(一般可在c\windows\system\下找到)
 
  在文件系統視圖中選擇應用程序文件夾在msiexecexe上按右鍵選擇創建快捷方式重命名快捷方式為卸載 更改此快捷方式的Arguments 為/x {產品id}產品id的值為打包項目的ProductCode屬性值
 
  方法二(推薦)
 
  先生成安裝包記下ProductCode(選擇解決方案資源管理器根目錄如setup再查看屬性標簽不是右鍵中的屬性)下面要用到

  用VSnet建立一個新的控制台程序uninstexe文件power by landlordh for xp Module uninstall Sub Main()
 
  Dim myProcess As Process = New Process If SystemEnvironmentOSVersionToStringIndexOf(NT ) Then myProcessStart(msiexec /X{BDACABBFB}改為自己的ProductCode End If myProcessClose()
 
  End Sub End Module 將控制台程序BIN目錄的exe文件加入到打包程序文件中在程序組創建uninstexe的快捷方式附installdbvb類要添加引用 systemconfigurationinstalldll Imports SystemComponentModel Imports SystemConfigurationInstall Public Class Installer Inherits SystemConfigurationInstallInstaller #Region 組件設計器生成的代碼 Public Sub New()
 
  MyBaseNew()
 
  該調用是組件設計器所必需的
 
  InitializeComponent()
 
  在 InitializeComponent() 調用之後添加任何初始化End Sub Installer 重寫 dispose 以清理組件列表
 
  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
 
  If disposing Then If Not (components Is Nothing) Then componentsDispose()
 
  End If MyBaseDispose(disposing)
 
  End Sub 組件設計器所必需的Private components As SystemComponentModelIContainer 注意 以下過程是組件設計器所必需的可以使用組件設計器來修改此過程
 
  不要使用代碼編輯器來修改它
 
  Private Sub InitializeComponent()
 
  components = New SystemComponentModelContainer End Sub #End Region Public Overrides Sub Install(ByVal stateSaver As SystemCollectionsIDictionary)
 
  MyBaseInstall(stateSaver)
 
  If Not InstallDB() Then 失敗反安裝MeUninstall(stateSaver)
 
  Exit Sub End If DeleteFile(StringFormat({}DBdat MeContextParametersItem(targetdir)))
 
  End Sub Public Overrides Sub Uninstall(ByVal stateSaver As SystemCollectionsIDictionary)

[]  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15204.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.