vb.net打包 vb60打包

VB.net平臺(tái)做出來(lái)的程序怎么打包成.exe文件?

將VB.Net程序打包成可執(zhí)行的.exe程序 收藏 一).創(chuàng)建部署項(xiàng)目1. 在“文件”菜單上指向“添加項(xiàng)目”,然后選擇“新建項(xiàng)目”。2. 在“添加新項(xiàng)目”對(duì)話(huà)框中,選擇“項(xiàng)目類(lèi)型”窗格中的“安裝和部署項(xiàng)目”,然后選擇“模板”窗格中的“安裝項(xiàng)目”。在“名稱(chēng)”框中鍵入 setup1。3. 單擊“確定”關(guān)閉對(duì)話(huà)框。4. 項(xiàng)目被添加到解決方案資源管理器中,并且文件系統(tǒng)編輯器打開(kāi)。5. 在“屬性”窗口中,選擇 ProductName 屬性,并鍵入 信息管理系統(tǒng) 。二).將 主程序 項(xiàng)目的輸出添加到部署項(xiàng)目中1. 在“文件系統(tǒng)編輯器”中,選擇“應(yīng)用程序文件夾”。在“操作”菜單上,指向“添加”,然后選擇“項(xiàng)目輸出”。2. 在“添加項(xiàng)目輸出組”對(duì)話(huà)框中,選擇“項(xiàng)目”下拉列表中的“你的程序”。3. 單擊“確定”關(guān)閉對(duì)話(huà)框。4. 從列表中選擇“主輸出”和“內(nèi)容文件”組,然后單擊“確定”。三).創(chuàng)建安裝程序類(lèi)1. 在“文件”菜單上指向“新建”,然后選擇“項(xiàng)目”。2. 在“新建項(xiàng)目”對(duì)話(huà)框中,選擇“項(xiàng)目類(lèi)型”窗格中的“Visual Basic 項(xiàng)目”,然后選擇“模板”窗格中的“類(lèi)庫(kù)”。在“名稱(chēng)”框中鍵入 installDB。3. 單擊“打開(kāi)”關(guān)閉對(duì)話(huà)框。4. 從“項(xiàng)目”菜單中選擇“添加新項(xiàng)”。5. 在“添加新項(xiàng)”對(duì)話(huà)框中選擇“安裝程序類(lèi)”。在“名稱(chēng)”框中鍵入 installDB。6. 單擊“確定”關(guān)閉對(duì)話(huà)框。7. 詳細(xì)代碼附后。四).創(chuàng)建自定義安裝對(duì)話(huà)框1. 在解決方案資源管理器中選擇“setup1”項(xiàng)目。在“視圖”菜單上指向“編輯器”,然后選擇“用戶(hù)界面”。2. 在用戶(hù)界面編輯器中,選擇“安裝”下的“啟動(dòng)”節(jié)點(diǎn)。在“操作”菜單上,選擇“添加對(duì)話(huà)框”。 3. 在“添加對(duì)話(huà)框”對(duì)話(huà)框中,選擇“許可協(xié)議”對(duì)話(huà)框,然后單擊“確定”關(guān)閉對(duì)話(huà)框。4. 在“添加對(duì)話(huà)框”對(duì)話(huà)框中,選擇“文本框 (A)”對(duì)話(huà)框,然后單擊“確定”關(guān)閉對(duì)話(huà)框。5. 在“操作”菜單上,選擇“上移”。重復(fù)此步驟,直到“文本框 (A)”對(duì)話(huà)框位于“安裝文件夾”節(jié)點(diǎn)之上。6. 在“屬性”窗口中,選擇 BannerText 屬性并鍵入:安裝數(shù)據(jù)庫(kù).7. 選擇 BodyText 屬性并鍵入:安裝程序?qū)⒃谀繕?biāo)機(jī)器上安裝數(shù)據(jù)庫(kù)8. 選擇 Edit1Label 屬性并鍵入:數(shù)據(jù)庫(kù)名稱(chēng):9. 選擇 Edit1Property 屬性并鍵入 CUSTOMTEXTA110. 選擇 Edit1Value 屬性并鍵入:dbservers11. 選擇 Edit2Label 屬性并鍵入:服務(wù)器名:12. 選擇 Edit2Property 屬性并鍵入 CUSTOMTEXTA213. 選擇 Edit2Value 屬性并鍵入:(local)14. 選擇 Edit3Label 屬性并鍵入:用戶(hù)名:15. 選擇 Edit3Value 屬性并鍵入:sa16. 選擇 Edit3Property 屬性并鍵入 CUSTOMTEXTA317. 選擇 Edit4Label 屬性并鍵入:密碼:18. 選擇 Edit4Property 屬性并鍵入 CUSTOMTEXTA419. 選擇 Edit2Visible、Edit3Visible 和 Edit4Visible 屬性,并將它們?cè)O(shè)置為 true五).創(chuàng)建自定義操作1. 在解決方案資源管理器中選擇“setup1”項(xiàng)目。在“視圖”菜單上指向“編輯器”,然后選擇“自定義操作”。2. 在自定義操作編輯器中選擇“安裝”節(jié)點(diǎn)。在“操作”菜單上,選擇“添加自定義操作”。3. 在“選擇項(xiàng)目中的項(xiàng)”對(duì)話(huà)框中,雙擊“應(yīng)用程序文件夾”。4. 選擇“主輸出來(lái)自 installDB(活動(dòng))”項(xiàng),然后單擊“確定”關(guān)閉對(duì)話(huà)框。5. 在“屬性”窗口中,選擇 CustomActionData 屬性并鍵入“/dbname=[CUSTOMTEXTA1] /server=[CUSTOMTEXTA2] /user=[CUSTOMTEXTA3] /pwd=[CUSTOMTEXTA4] /targetdir="[TARGETDIR]\"”。附:/targetdir="[TARGETDIR]\"是安裝后的目標(biāo)路徑,為了在installDB類(lèi)中獲得安裝后的路徑,我們?cè)O(shè)置此參數(shù)。

為北屯等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及北屯網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、北屯網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

vb.net怎樣打包?

打包的具體操作步驟:

1)新建“安裝和部署項(xiàng)目”-- “安裝向?qū)А?/p>

2)選擇菜單中 項(xiàng)目-- 添加-- 文件(這里選“創(chuàng)建用于windows應(yīng)用程序.exe你的數(shù)據(jù)庫(kù)文件”)-- 打開(kāi)

3)一般會(huì)自動(dòng)將依賴(lài)項(xiàng)添加到“檢測(cè)到的依賴(lài)項(xiàng)”,如果沒(méi)有,那么我們要手動(dòng)將其加入4)

Crystal_Managed2003.msm (如果有水晶報(bào)表)

dotnetfxredist_x86.msm (.net一定是必須的)

... (如果有引用其他的dll)

4)手動(dòng)加入要包含的文件:項(xiàng)目-- 添加-- 合并模塊(添加你的程序文件) (包括dotNetFramework和MDAC27)

位于:C:\Program Files\Common Files\Merge Modules\ 下

具體功能如下:

(托管組件 MSM 處理所有托管組件的分發(fā),其中包括 Windows 窗體查看器、Web 窗體查看器和所有 Crystal Decisions 命名空間)

* Crystal_Managed2003.msm、

Crystal_Managed2003_chs.msm、

(對(duì)于使報(bào)表運(yùn)行所需的所有其他文件,由數(shù)據(jù)庫(kù)訪(fǎng)問(wèn) MSM 處理其分發(fā)。其中包括數(shù)據(jù)庫(kù)、導(dǎo)出和圖表驅(qū)動(dòng)程序。)

* Crystal_Database_access2003.msm、

Crystal_Database_access2003_chs.msm、

(KeyCode MSM 處理 Crystal Decisions 密鑰號(hào)碼的安裝,注意是添加合并模塊,否則沒(méi)有“MergeMouduleProperties”屬性)

* Crystal_regwiz2003.msm、

(是vc的運(yùn)行庫(kù),估計(jì)是Crystal Report或涉及到的某些程序是用vc寫(xiě)的,所以需要它?。?/p>

VC_User_CRT71_RTL_X86_---.msm、

VC_User_STL71_RTL_X86_---.msm、

5)打開(kāi)解決方案-- 右鍵點(diǎn)擊Crystal_regwiz2003.msm的屬性,在“MergeMouduleProperties”里的“License Key”填入:AAP5GKS0000GDE100DS(這個(gè)是你生成Crystal Report是用到的注冊(cè)號(hào)的密碼?。?/p>

6)生成解決方案(或直接按Ctrl+Shift+B)

至此整個(gè)分發(fā)程序已經(jīng)做好,再把剛才做的那個(gè)安裝程序雙擊一下……

-----------------------------------------------------------------------

打包時(shí)加入卸載功能:

方法一:

1.在打包項(xiàng)目中添加文件msiexec.exe(一般可在c:\windows\system32\下找到)

2.在文件系統(tǒng)視圖中選擇應(yīng)用程序文件夾,在msiexec.exe上按右鍵,選擇創(chuàng)建快捷方式,重命名快捷方式為 "卸載 ".

3.更改此快捷方式的Arguments 為 "/x {產(chǎn)品id} ",產(chǎn)品id的值為打包項(xiàng)目的ProductCode屬性值.

方法二:(推薦)

1.先生成安裝包,記下ProductCode,下面要用到

2.用VS.net建立一個(gè)新的控制臺(tái)程序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.將控制臺(tái)程序BIN目錄的exe文件加入到打包程序文件中,在程序組創(chuàng)建uninst.exe的快捷方式

如果裝個(gè)ms的控件的話(huà),則直接把framework和msac打在包里。

VB.NET 2008 怎么給軟件打包?能不能做成一個(gè)exe文件?

直接把代碼編譯生成即可,把Bin文件夾下面的幾個(gè)文件拷貝過(guò)去就可以了。客戶(hù)機(jī)需要安裝dot net framwork 3.5

打包過(guò)程:

一).創(chuàng)建部署項(xiàng)目

1. 在“文件”菜單上指向“添加項(xiàng)目”,然后選擇“新建項(xiàng)目”。

2. 在“添加新項(xiàng)目”對(duì)話(huà)框中,選擇“項(xiàng)目類(lèi)型”窗格中的“安裝和部署項(xiàng)目”,然后選擇“模板”窗格中的“安裝項(xiàng)目”。在“名稱(chēng)”框中鍵入 setup1。

3. 單擊“確定”關(guān)閉對(duì)話(huà)框。

4. 項(xiàng)目被添加到解決方案資源管理器中,并且文件系統(tǒng)編輯器打開(kāi)。

5. 在“屬性”窗口中,選擇 ProductName 屬性,并鍵入 信息管理系統(tǒng) 。

二).將 主程序 項(xiàng)目的輸出添加到部署項(xiàng)目中

1. 在“文件系統(tǒng)編輯器”中,選擇“應(yīng)用程序文件夾”。在“操作”菜單上,指向“添加”,然后選擇“項(xiàng)目輸出”。

2. 在“添加項(xiàng)目輸出組”對(duì)話(huà)框中,選擇“項(xiàng)目”下拉列表中的“你的程序”。

3. 單擊“確定”關(guān)閉對(duì)話(huà)框。

4. 從列表中選擇“主輸出”和“內(nèi)容文件”組,然后單擊“確定”。

三).創(chuàng)建安裝程序類(lèi)

1. 在“文件”菜單上指向“新建”,然后選擇“項(xiàng)目”。

2. 在“新建項(xiàng)目”對(duì)話(huà)框中,選擇“項(xiàng)目類(lèi)型”窗格中的“Visual Basic 項(xiàng)目”,然后選擇“模板”窗格中的“類(lèi)庫(kù)”。在“名稱(chēng)”框中鍵入 installDB。

3. 單擊“打開(kāi)”關(guān)閉對(duì)話(huà)框。

4. 從“項(xiàng)目”菜單中選擇“添加新項(xiàng)”。

5. 在“添加新項(xiàng)”對(duì)話(huà)框中選擇“安裝程序類(lèi)”。在“名稱(chēng)”框中鍵入 installDB。

6. 單擊“確定”關(guān)閉對(duì)話(huà)框。

7. 詳細(xì)代碼附后。

四).創(chuàng)建自定義安裝對(duì)話(huà)框

1. 在解決方案資源管理器中選擇“setup1”項(xiàng)目。在“視圖”菜單上指向“編輯器”,然后選擇“用戶(hù)界面”。

2. 在用戶(hù)界面編輯器中,選擇“安裝”下的“啟動(dòng)”節(jié)點(diǎn)。在“操作”菜單上,選擇“添加對(duì)話(huà)框”。

3. 在“添加對(duì)話(huà)框”對(duì)話(huà)框中,選擇“許可協(xié)議”對(duì)話(huà)框,然后單擊“確定”關(guān)閉對(duì)話(huà)框。

4. 在“添加對(duì)話(huà)框”對(duì)話(huà)框中,選擇“文本框 (A)”對(duì)話(huà)框,然后單擊“確定”關(guān)閉對(duì)話(huà)框。

5. 在“操作”菜單上,選擇“上移”。重復(fù)此步驟,直到“文本框 (A)”對(duì)話(huà)框位于“安裝文件夾”節(jié)點(diǎn)之上。

6. 在“屬性”窗口中,選擇 BannerText 屬性并鍵入:安裝數(shù)據(jù)庫(kù).

7. 選擇 BodyText 屬性并鍵入:安裝程序?qū)⒃谀繕?biāo)機(jī)器上安裝數(shù)據(jù)庫(kù)

8. 選擇 Edit1Label 屬性并鍵入:數(shù)據(jù)庫(kù)名稱(chēng):

9. 選擇 Edit1Property 屬性并鍵入 CUSTOMTEXTA1

10. 選擇 Edit1Value 屬性并鍵入:dbservers

11. 選擇 Edit2Label 屬性并鍵入:服務(wù)器名:

12. 選擇 Edit2Property 屬性并鍵入 CUSTOMTEXTA2

13. 選擇 Edit2Value 屬性并鍵入:(local)

14. 選擇 Edit3Label 屬性并鍵入:用戶(hù)名:

15. 選擇 Edit3Value 屬性并鍵入:sa

16. 選擇 Edit3Property 屬性并鍵入 CUSTOMTEXTA3

17. 選擇 Edit4Label 屬性并鍵入:密碼:

18. 選擇 Edit4Property 屬性并鍵入 CUSTOMTEXTA4

19. 選擇 Edit2Visible、Edit3Visible 和 Edit4Visible 屬性,并將它們?cè)O(shè)置為 true

五).創(chuàng)建自定義操作

1. 在解決方案資源管理器中選擇“setup1”項(xiàng)目。在“視圖”菜單上指向“編輯器”,然后選擇“自定義操作”。

2. 在自定義操作編輯器中選擇“安裝”節(jié)點(diǎn)。在“操作”菜單上,選擇“添加自定義操作”。

3. 在“選擇項(xiàng)目中的項(xiàng)”對(duì)話(huà)框中,雙擊“應(yīng)用程序文件夾”。

4. 選擇“主輸出來(lái)自 installDB(活動(dòng))”項(xiàng),然后單擊“確定”關(guān)閉對(duì)話(huà)框。

5. 在“屬性”窗口中,選擇 CustomActionData 屬性并鍵入“/dbname=[CUSTOMTEXTA1] /server=[CUSTOMTEXTA2] /user=[CUSTOMTEXTA3] /pwd=[CUSTOMTEXTA4] /targetdir="[TARGETDIR]\"”。

附:/targetdir="[TARGETDIR]\"是安裝后的目標(biāo)路徑,為了在installDB類(lèi)中獲得安裝后的路徑,我們?cè)O(shè)置此參數(shù)。

六).添加文件

1. 將SQL Server備份成文件DB.dat添加到“setup1”項(xiàng)目(在企業(yè)管理器中右擊數(shù)據(jù)庫(kù)-所有工作-備份數(shù)據(jù)庫(kù),備份成一個(gè)文件,取名為DB.dat)

2. 將安裝文件LisenceFile.rtf添加到“setup1”項(xiàng)目

3. 在用戶(hù)界面編輯器中,選擇許可協(xié)議,設(shè)置LisenceFile屬性為L(zhǎng)isenceFile.rtf文件

4.一般會(huì)自動(dòng)將依賴(lài)項(xiàng)添加到“檢測(cè)到的依賴(lài)項(xiàng)”,如果沒(méi)有,那么我們要手動(dòng)將其加入步驟5)

Crystal_Managed2003.msm (如果有水晶報(bào)表)

dotnetfxredist_x86.msm (.net一定是必須的)

... (如果有引用其他的dll)

5. 如果使用了水晶報(bào)表,手動(dòng)加入要包含的文件:項(xiàng)目--添加--合并模塊(添加你的程序文件) (包括dotNetFramework和MDAC27),位于:C:\Program Files\Common Files\Merge Modules\ 下,*為必要的

具體功能如下:

(托管組件 MSM 處理所有托管組件的分發(fā),其中包括 Windows 窗體查看器、Web 窗體查看器和所有 Crystal Decisions 命名空間)

* Crystal_Managed2003.msm

Crystal_Managed2003_chs.msm

(對(duì)于使報(bào)表運(yùn)行所需的所有其他文件,由數(shù)據(jù)庫(kù)訪(fǎng)問(wèn) MSM 處理其分發(fā)。其中包括數(shù)據(jù)庫(kù)、導(dǎo)出和圖表驅(qū)動(dòng)程序。)

* Crystal_Database_access2003.msm

Crystal_Database_access2003_chs.msm

(KeyCode MSM 處理 Crystal Decisions 密鑰號(hào)碼的安裝,注意是添加合并模塊,否則沒(méi)有“MergeMouduleProperties”屬性)

* Crystal_regwiz2003.msm

(如果報(bào)表文件使用了 ADO.NET 的 dataset 數(shù)據(jù)集對(duì)象,那么 VC_User_CRT71_RTL_X86_---.msm 和 VC_User_STL71_RTL_X86_---.msm 模塊也必須包含在安裝工程中。而且這兩個(gè)模塊的文件安裝屬性的"Module Retargetable Folder"項(xiàng)必須修改成為系統(tǒng)目錄)

VC_User_CRT71_RTL_X86_---.msm

VC_User_STL71_RTL_X86_---.msm

(很多人經(jīng)常出現(xiàn)查詢(xún)錯(cuò)誤,不妨加上這個(gè))

6. 打開(kāi)解決方案--右鍵點(diǎn)擊Crystal_regwiz2003.msm的屬性,在“MergeMouduleProperties”里的 “License Key”填入:AAP5GKS0000GDE100DS(這個(gè)是你生成Crystal Report是用到的注冊(cè)號(hào)的密碼?。?/p>

七).打包時(shí)加入卸載功能:

方法一:

1.在打包項(xiàng)目中添加文件msiexec.exe(一般可在c:\windows\system32\下找到)

2.在文件系統(tǒng)視圖中選擇應(yīng)用程序文件夾,在msiexec.exe上按右鍵,選擇創(chuàng)建快捷方式,重命名快捷方式為"卸載".

3.更改此快捷方式的Arguments 為"/x {產(chǎn)品id}",產(chǎn)品id的值為打包項(xiàng)目的ProductCode屬性值.

方法二:(推薦)

1.先生成安裝包,記下ProductCode(選擇解決方案資源管理器根目錄如setup1,再查看屬性標(biāo)簽,不是右鍵中的屬性),下面要用到

2.用VS.net建立一個(gè)新的控制臺(tái)程序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.將控制臺(tái)程序BIN目錄的exe文件加入到打包程序文件中,在程序組創(chuàng)建uninst.exe的快捷方式

八).打包時(shí)加入.net環(huán)境和MDAC功能:

把MS的PluginInstaller.msi插件裝上后,用vb.net的自帶的打包工具打包,就會(huì)自動(dòng)把

.net framework環(huán)境打進(jìn)去,再下面的步驟進(jìn)行設(shè)置,就可以把MDAC也打包.

使用 Setup 項(xiàng)目安裝 MDAC

1.確保 Visual Studio .NET 框架引導(dǎo)程序插件已安裝。

2.在 Solution Explorer 中選擇 Setup 項(xiàng)目。

從 View 菜單指向 Editor,并選擇 Launch Conditions(啟動(dòng)條件)。

3.選擇 Requirements on Target Machine(搜索目標(biāo)計(jì)算機(jī)) 節(jié)點(diǎn)。

從 Action 菜單,選擇 Add Registry Launch Condition(添加注冊(cè)表搜索)。

4.選擇 Search for RegistryEntry1 節(jié)點(diǎn)。在 Properties 窗口中,

選擇 RegKey 屬性,并鍵入 Software\Microsoft\DataAccess。

5.選擇 Root 屬性,并選擇 vsdrrHKLM。

6.選擇 Value 屬性,并鍵入 FullInstallVer。

7.選擇 Property 屬性,并鍵入 MDACSEARCH。

8.在 Launch Conditions Editor(啟動(dòng)條件) 中,添加Condition1 節(jié)點(diǎn)。

選擇 Condition1 節(jié)點(diǎn),在 Properties 窗口中,選擇 Condition 屬性,并選擇 MDACSEARCH="2.6"。

9.在 Solution Explorer 中選擇 Setup 項(xiàng)目。在 Project 菜單上,選擇 Properties。

10.將 Bootstrapper 屬性設(shè)置為 Windows Installer Bootstrapper(Windows 安裝引導(dǎo)程序)。

附:

installdb.vb類(lèi),要添加引用 system.configuration.install.dll :

Imports System.ComponentModel

Imports System.Configuration.Install

RunInstaller(True) Public Class Installer1

Inherits System.Configuration.Install.Installer

#Region " 組件設(shè)計(jì)器生成的代碼 "

Public Sub New()

MyBase.New()

'該調(diào)用是組件設(shè)計(jì)器所必需的。

InitializeComponent()

'在 InitializeComponent() 調(diào)用之后添加任何初始化

End Sub

'Installer 重寫(xiě) 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

'組件設(shè)計(jì)器所必需的

Private components As System.ComponentModel.IContainer

'注意: 以下過(guò)程是組件設(shè)計(jì)器所必需的

'可以使用組件設(shè)計(jì)器來(lái)修改此過(guò)程。

'不要使用代碼編輯器來(lái)修改它。

System.Diagnostics.DebuggerStepThrough() 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)

'執(zhí)行反安裝

MyBase.Uninstall(stateSaver)

DeleteFile(String.Format("{0}DB.dat", Me.Context.Parameters.Item("targetdir")))

End Sub

Private Sub DeleteFile(ByVal paths As String)

'刪除指定的文件

Try

Dim delFile As New System.IO.FileInfo(paths)

If delFile.Exists Then

delFile.Delete()

End If

Catch ex As Exception

End Try

End Sub

Private Sub CreateSql(ByVal paths As String)

Dim File As System.IO.StreamWriter

Dim db As String = String.Format("{0}", Me.Context.Parameters.Item("dbname"))

Dim path As String = String.Format("{0}", Me.Context.Parameters.Item("targetdir"))

Try

Dim s As New System.Text.StringBuilder

s.Append("use master" vbCrLf)

s.Append("" vbCrLf)

s.Append("if not exists (select * from sysdatabases where name='" db "')" vbCrLf)

s.Append(" BEGIN" vbCrLf)

s.Append(" create database " db vbCrLf)

s.Append(" END" vbCrLf)

s.Append("" vbCrLf)

s.Append("if exists (select * from sysdevices where name='DBdisk')" vbCrLf)

s.Append(" BEGIN" vbCrLf)

s.Append(" EXEC sp_dropdevice 'DBdisk'" vbCrLf)

s.Append(" END" vbCrLf)

s.Append("Else" vbCrLf)

s.Append(" BEGIN" vbCrLf)

s.Append(" EXEC sp_addumpdevice 'disk','DBdisk', '" path "DB.dat'" vbCrLf)

s.Append(" END" vbCrLf)

s.Append("" vbCrLf)

s.Append("restore database " db vbCrLf)

s.Append("from disk='" path "DB.dat'" vbCrLf)

s.Append("with replace")

File = New System.IO.StreamWriter(paths)

File.Write(s.ToString)

Catch ex As Exception

Finally

File.Close()

End Try

End Sub

Private Function InstallDB() As Boolean

'安裝數(shù)據(jù)庫(kù),調(diào)用自動(dòng)批處理。

Try

'創(chuàng)建臨時(shí)腳本

CreateSql(String.Format("{0}Mydb2000tp.sql", Me.Context.Parameters.Item("targetdir")))

'調(diào)用osql執(zhí)行腳本

Dim sqlProcess As New System.Diagnostics.Process

sqlProcess.StartInfo.FileName = "osql.exe"

sqlProcess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -S {2} -i {3}Mydb2000tp.sql", Me.Context.Parameters.Item("user"), Me.Context.Parameters.Item("pwd"), Me.Context.Parameters.Item("server"), Me.Context.Parameters.Item("targetdir"))

sqlProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

sqlProcess.Start()

sqlProcess.WaitForExit() '等待執(zhí)行

sqlProcess.Close()

'刪除腳本文件

DeleteFile(String.Format("{0}Mydb2000tp.sql", Me.Context.Parameters.Item("targetdir")))

Return True

Catch ex As Exception

Return False

End Try

End Function

End Class

網(wǎng)上的另外一種installdb.vb類(lèi)

installdb.vb類(lèi),要添加引用 system.configuration.install.dll :

using System;

using System.Collections;

using System.ComponentModel;

using System.Configuration.Install;

using System.Reflection;

using System.IO;

using System.Data;

using System.Data.SqlClient;

namespace install

{

/// summary

/// Installer1 的摘要說(shuō)明。

/// /summary

[RunInstaller(true)]

public class Installer1 : System.Configuration.Install.Installer

{

/// summary

/// 必需的設(shè)計(jì)器變量。

/// /summary

private System.ComponentModel.Container components = null;

public Installer1()

{

// 該調(diào)用是設(shè)計(jì)器所必需的。

InitializeComponent();

// TODO: 在 InitializeComponent 調(diào)用后添加任何初始化

}

/// summary

/// 清理所有正在使用的資源。

/// /summary

protected override void Dispose( bool disposing )

{

if( disposing )

{

if(components != null)

{

components.Dispose();

}

}

base.Dispose( disposing );

}

#region 組件設(shè)計(jì)器生成的代碼

/// summary

/// 設(shè)計(jì)器支持所需的方法 - 不要使用代碼編輯器修改

/// 此方法的內(nèi)容。

/// /summary

private void InitializeComponent()

{

components = new System.ComponentModel.Container();

}

#endregion

private string GetSql(string Name)

{

// //調(diào)用osql執(zhí)行腳本

//

// System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process();

//

// sqlProcess.StartInfo.FileName = "osql.exe";

//

// sqlProcess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -d {2} -i {3}db.sql", this.Context.Parameters["user"], this.Context.Parameters["pwd"],"master", this.Context.Parameters["targetdir"]);

//

// sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

//

// sqlProcess.Start();

//

// sqlProcess.WaitForExit() ;//等待執(zhí)行

//

// sqlProcess.Close();

try

{

// Assembly Asm = Assembly.GetExecutingAssembly();

// System.IO.FileInfo FileInfo = new System.IO.FileInfo(Asm.Location);

// string path=FileInfo.DirectoryName+@"\"+Name;

string path=this.Context.Parameters["targetdir"]+Name;

FileStream fs=new FileStream(path,FileMode.Open,FileAccess.Read,FileShare.Read);

StreamReader reader = new StreamReader(fs,System.Text.Encoding.Default);

//System.Text.Encoding.ASCII;

return reader.ReadToEnd();

}

catch (Exception ex)

{

Console.Write("In GetSql:"+ex.Message);

throw ex;

}

}

private void ExecuteSql(string DataBaseName,string Sql)

{

SqlConnection sqlConnection1=new SqlConnection();

sqlConnection1.ConnectionString =string.Format("server={0}; user id={1}; password={2}; Database=master",this.Context.Parameters["server"],this.Context.Parameters["user"],this.Context.Parameters["pwd"]);

System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(Sql,sqlConnection1);

try

{

Command.Connection.Open();

Command.Connection.ChangeDatabase(DataBaseName);

Command.ExecuteNonQuery();

}

catch(Exception ex)

{

Console.Write("In exception handler :"+ex.Message);

}

finally

{

Command.Connection.Close();

}

}

protected void AddDBTable(string strDBName)

{

try

{

ExecuteSql("master","Create DATABASE "+ strDBName);

ExecuteSql(strDBName,GetSql("sql.txt"));

ExecuteSql("master","exec sp_addlogin 'myoamaster','myoamaster','"+strDBName+"',Null,Null");

ExecuteSql(strDBName,"EXEC sp_grantdbaccess 'myoamaster', 'myoamaster'");

ExecuteSql(strDBName,"exec sp_addrolemember 'db_owner','myoamaster'");

}

catch(Exception ex)

{

Console.Write("In exception handler :"+ex.Message);

}

}

public override void Install(System.Collections.IDictionary stateSaver)

{

base.Install(stateSaver);

AddDBTable(this.Context.Parameters["dbname"]);

}

}

}

這里有個(gè)sql.txt是數(shù)據(jù)庫(kù)的sql腳本,當(dāng)然可以調(diào)用osql來(lái)執(zhí)行sql腳本,其實(shí)是一樣的。

打包的時(shí)候必須把sql.txt文件加進(jìn)來(lái),否則不會(huì)執(zhí)行。

如果你想附加數(shù)據(jù)庫(kù)的mdf文件和ldf文件,用下面這段程序:

private void CreateDataBase(string strSql,string DataName,string strMdf,string strLdf)

{

String str;

SqlConnection myConn = new SqlConnection (strSql);

//EXEC sp_detach_db @dbname = 'BX_FreightMileage_2'//需要先將數(shù)據(jù)庫(kù)分離出來(lái)

str = "EXEC sp_attach_db @dbname = '"+ DataName +"', @filename1 = '"+ strMdf +"',@filename2='"+strLdf+"'";

SqlCommand myCommand = new SqlCommand(str, myConn);

myConn.Open();

myCommand.ExecuteNonQuery();

myConn.Close();

}

當(dāng)然打包的時(shí)候也要把這兩個(gè)數(shù)據(jù)庫(kù)文件也加進(jìn)來(lái)。

在vb.net中怎么把Windows應(yīng)用程序打包成EXE格式的可執(zhí)行文件

1.新建安裝和部署。 打開(kāi)你所寫(xiě)的項(xiàng)目,在解決方案上右鍵-添加-新建項(xiàng)目。選擇其他項(xiàng)目類(lèi)型-安裝和部署-安裝項(xiàng)目。在名稱(chēng)中把名字改為你所希望的名字,然后確定。 2.確定后打開(kāi)文件系統(tǒng),然后單擊應(yīng)用程序文件夾,在右邊空白處右鍵-添加-項(xiàng)目輸出。3.選擇主輸出,然后確定。 4.在剛添加的主輸出上右鍵,創(chuàng)建其快捷方式??梢灾孛部刹恢孛?.剪切剛創(chuàng)建的快捷方式,然后單擊用戶(hù)的程序菜單,在其上右鍵,添加,文件夾,重命名文件夾。這個(gè)文件夾名字就是你在開(kāi)始,所有程序中顯示的名字。然后單擊剛創(chuàng)建的文件夾,在右邊空白處粘貼快捷方式,安裝好程序后,這個(gè)快捷方式會(huì)出現(xiàn)在所有程序中。 6.像上面一樣再創(chuàng)建一個(gè)快捷方式,剪切,然后單擊用戶(hù)桌面,粘貼。安裝完程序后,這個(gè)快捷方式出現(xiàn)在桌面。 7.右擊左邊的"應(yīng)用程序文件夾"打開(kāi)屬性對(duì)話(huà)框:將屬性中的"defaultlocation"的路徑中的"[manufacturer]"去掉,

不然的話(huà)做好的安裝程序默認(rèn)安裝目錄會(huì)是"c:\programm file\你的用戶(hù)名\安裝解決方案名稱(chēng)"。 8.右鍵你的安裝項(xiàng)目名,屬性。在打開(kāi)的屬性頁(yè)中,選擇"系統(tǒng)必備",在打開(kāi)的系統(tǒng)必備頁(yè)中,選中如下圖中的選擇項(xiàng),選上以后,在生成的安裝文件包中包含.netframework組件,然后確定。 9.改變桌面和開(kāi)始-所有程序中該程序的默認(rèn)圖標(biāo)。在應(yīng)用程序文件夾右邊空白處,右鍵-添加-文件,添加一個(gè)ico文件。打開(kāi)用戶(hù)的程序菜單-'你的程序名',在右邊的快捷方式上右鍵,屬性窗口。向其屬性中的icon屬性添加剛添加的ico圖標(biāo)。同理,打開(kāi)用戶(hù)桌面,在右邊的快捷方式上右鍵,屬性窗口。向其屬性中的icon屬性添加剛添加的ico圖標(biāo)。 10.添加卸載功能。在應(yīng)用程序文件夾右邊空白處,右鍵-添加-文件,選擇c:\windows\system32文件夾下的msiexec.exe文件。然后重命名為Uninstall.exe。改不改名字都可以。然后創(chuàng)建快捷方式,剪切到用戶(hù)的程序菜單-'你的程序名'。 11.用鼠標(biāo)左鍵單擊安裝項(xiàng)目名,查看其屬性,注意不是右鍵,屬性。查看其ProductCode屬性。然后復(fù)制該屬性的值。如圖: 12.然后打開(kāi)你創(chuàng)建的那個(gè)卸載快捷方式的屬性對(duì)話(huà)框,在A(yíng)guements屬性中輸入"/x {ProductCode}",本例為/x {D8DB4DCF-B28A-49CB-9840-E36D68FD7EE1}。 13.右鍵安裝項(xiàng)目名,單擊生成,即可生成帶有卸載功能的安裝程序了.

新聞標(biāo)題:vb.net打包 vb60打包
網(wǎng)頁(yè)地址:http://muchs.cn/article14/doeosge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站維護(hù)、面包屑導(dǎo)航靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司