成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教你實(shí)現(xiàn).NET程序打包

開發(fā) 后端
.NET程序進(jìn)行打包,主要是為了方便用戶進(jìn)行安裝。這也是廣大.NET程序員完成開發(fā)與測試后,最后的一個步驟。

1、在這個安裝包制作的過程中,所用到的一些圖片或者文件,如:快捷鍵圖片,安裝步驟中每個圖形界面的背景圖片等都要事先在[應(yīng)用程序文件夾]中事先添加好這些圖片,即在安裝項(xiàng)目中添加這些圖片,文件好像是解決方案下debug下的所有文件都拷貝,如exe、config、rpt還有圖片等

2、安裝包中的那個Install里面的方法的執(zhí)行時(shí)間是在:所以的文件都安裝好了后再執(zhí)行其中的號碼。如客戶端安裝是在配置文件已經(jīng)裝好了后,但是其中的配置節(jié)還沒有信息,但是在代碼中賦值之后就有了,還有服務(wù)器也一樣,如數(shù)據(jù)庫也一樣,首先是拷貝到客戶端電腦上,然后再執(zhí)行install中的代碼,。獲取硬盤上的數(shù)據(jù)庫文件,然后再在數(shù)據(jù)庫中創(chuàng)建,并且引用到這個數(shù)據(jù)庫文件

***、給安裝項(xiàng)目添加必要的文件,貌似是應(yīng)用程序debug文件夾下的所有文件,還有是安裝系統(tǒng)要用的圖片文件

第二、添加系統(tǒng)必備:安裝項(xiàng)目右鍵->屬性->選擇系統(tǒng)必備,

必選上[數(shù)據(jù)訪問組件]、[.net 2.0]、[windows installer 3.1]。如果應(yīng)用程序中有rpt的報(bào)表就要加上報(bào)表引擎

其中【指定系統(tǒng)必備組件的安裝位置】要選擇第二個,【從與我的應(yīng)用程序相同的位置下載系統(tǒng)必備組件】

(第三)選擇應(yīng)用程序文件夾。右鍵添加項(xiàng)目輸出項(xiàng)。將應(yīng)用程序設(shè)置為主輸出

第三、添加卸載程序

打開系統(tǒng)目錄C:\WINDOWS\system32找到文件msiexec.exe,復(fù)制到剛創(chuàng)建的安裝項(xiàng)目文件系統(tǒng)視圖的應(yīng)用程序文件夾中。

第四、創(chuàng)建【用戶的'程序'菜單(包括安裝和卸載)】

首先創(chuàng)建一個文件夾,然后在文件夾里創(chuàng)建下面兩個,因?yàn)檫@個文件夾就是在開始菜單->程序->該文件夾->安裝和卸載

1、創(chuàng)建卸載快捷鍵(先選擇程序,然后配屬性):

選擇【用戶的'程序'菜單】->在中間空白地方右鍵【創(chuàng)建快捷鍵】->選擇msiexec.exe->右鍵快捷鍵選擇屬性->修改Name和ICON->配置Arguments屬性。

配置Arguments屬性的方法是:單擊安裝項(xiàng)目,是左鍵單擊,然后找到ProductCode,復(fù)制下來,然后Arguments=/x ProductCode(這里注意有個空格)。

2、創(chuàng)建安裝快捷鍵(也是先選擇程序,然后配屬性):

選擇【用戶的'程序'菜單】->在中間空白地方右鍵【創(chuàng)建快捷鍵】->選擇[應(yīng)用程序的exe文件]->右鍵快捷鍵選擇屬性->修改Name和ICON,且安裝不需要          配Arguments屬性

3、在【用戶桌面】中重復(fù)第2步的操作

第五、添加用戶操作界面

右鍵安裝項(xiàng)目->視圖->用戶界面:

安裝的過程無非就是:啟動->進(jìn)度->結(jié)束

 給啟動添加一個【文本框A】,并且將它上移到安裝文件夾的上面(安裝程序運(yùn)行的時(shí)候就是按著上面的順序運(yùn)行的)

 ->右鍵這個【文本框A】,填寫其中的值

第六、添加自定義操作

為安裝解決方案添加一個類庫項(xiàng)目,刪除Class1.cs

為類庫項(xiàng)目添加一個【安裝程序類】->Installer1

第七、完成將我們自定義的安裝類接入到安裝過程:

1、將我們新建的類庫作為主輸出添加到安裝項(xiàng)目中

選擇【應(yīng)用程序文件夾】,在中間空白部分右鍵選擇【添加項(xiàng)目輸出】將設(shè)置新建的類庫作為主輸出

2、打開安裝項(xiàng)目的“自定義操作視圖”然后在相應(yīng)(安裝、卸載和回滾等)的節(jié)點(diǎn)上“右鍵”添加自定義操作《選擇主輸出》

右鍵選擇【CustomActionData】

 /PassWord=[PASSWORD] /UserName=[USERNAME] /Server=[SERVER] /TargetDir="[TARGETDIR]\"

(注:/targetdir="[TARGETDIR]\"傳遞安裝目錄的路徑、[PASSWORD]等這些是我們在用戶界面上設(shè)置的文本框的屬性)

第八、再次完善新建的類庫,給其中添加方法

1、重寫安裝函數(shù)public override void Install(System.Collections.IDictionary stateSaver)

2、重寫卸載函數(shù)public override void Uninstall(IDictionary savedState)

3、重寫安裝完成后函數(shù) protected override void OnAfterInstall(IDictionary savedState)

完成

附加:如果我們想在程序卸載的時(shí)候保留某些文件則需要配置這些文件的屬性如下即可:即:Permanent為true

在安裝的的過程中,在應(yīng)用程序(不是安裝解決方案)有些圖片文件或者rpt文件也要放在安裝后的文件夾中那么就這樣設(shè)置

將應(yīng)用程序中的這些文件的一個屬性【復(fù)制到輸出目錄】屬性為:

”如果較新則復(fù)制”或者“始終復(fù)制”,同時(shí)在安裝項(xiàng)目中添加winfrom項(xiàng)目的“內(nèi)容文件輸出”則在安裝包生成過程中自動復(fù)制文件到安裝包中。

附加2、卸載方法二:(推薦)

1.先生成安裝包,記下ProductCode(選擇解決方案資源管理器根目錄如setup1,再查看屬性

標(biāo)簽,不是右鍵中的屬性),下面要用到

2.用VS.net建立一個新的控制臺程序uninst.exe文件

  1. 'power by: landlordh  
  2. 'for 2000,xp,2003  
  3. Module uninstall  
  4.     Sub Main()  
  5.         Dim myProcess As Process = New Process  
  6.         If System.Environment.OSVersion.ToString.IndexOf("NT 5") Then  
  7.             myProcess.Start("msiexec", "/X{2B65D4A9-C146-4808-AB4B-321FB077955  
  8. 9}")  '改為自己的ProductCode  
  9.         End If  
  10.         myProcess.Close()  
  11.     End Sub  
  12. End Module 

3.將控制臺程序BIN目錄的exe文件加入到打包程序文件中,在程序組創(chuàng)建uninst.exe的快捷

方式

附加3、可以再安裝類庫項(xiàng)目中再建立一個winform窗體程序,然后在安裝類中調(diào)用,因?yàn)槲覀冊诎惭b項(xiàng)目中添加了一個文本框A其實(shí)目的就是更改config文件,那么這里再建立一個winform項(xiàng)目的話也可以實(shí)現(xiàn)同樣的效果,而且還可以進(jìn)行更好看的界面

安裝包的版本升級,每次升級一定要設(shè)置Vesion這個屬性和ProductCode這個屬性,同時(shí)也要設(shè)置卸載圖標(biāo)的那個屬性,否則當(dāng)再次安裝的時(shí)候會提示你到控制面板中刪除,然后每次升級的時(shí)候版本號要比上個版本號要高,否則的話會提示你不能安裝,這種情況只能手動卸載掉電腦上的應(yīng)用程序然后再進(jìn)行安裝

原文鏈接:http://www.cnblogs.com/kuyijie/archive/2011/01/05/1926670.html

 【編輯推薦】

  1. .NET 3.5擴(kuò)展方法點(diǎn)評:優(yōu)點(diǎn)與問題
  2. 一個.NET調(diào)用PHP Web Service的典型例子
  3. .NET 4.0的ICustomQueryInterface新特性
  4. 在.NET反應(yīng)性框架中實(shí)現(xiàn)LINQ
  5. .NET 3.5擴(kuò)展方法和Lambda表達(dá)式


 

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2023-04-26 12:46:43

DockerSpringKubernetes

2009-11-09 14:57:37

WCF上傳文件

2011-01-10 14:41:26

2025-05-07 00:31:30

2011-05-03 15:59:00

黑盒打印機(jī)

2009-06-05 09:49:18

修改.NET Frammscorlib.dl

2009-11-02 15:33:53

VB.NET Data

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用

2020-05-15 08:07:33

JWT登錄單點(diǎn)

2021-03-12 10:01:24

JavaScript 前端表單驗(yàn)證

2011-02-22 13:46:27

微軟SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中斷喚醒系統(tǒng)Linux 系統(tǒng)

2011-04-21 10:32:44

MySQL雙機(jī)同步

2011-10-06 14:32:43

2022-03-14 14:47:21

HarmonyOS操作系統(tǒng)鴻蒙

2022-07-27 08:16:22

搜索引擎Lucene

2022-01-08 20:04:20

攔截系統(tǒng)調(diào)用

2022-12-07 08:42:35

2020-07-09 08:59:52

if else模板Service
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品亚洲一区二区三区四区五区 | 日韩综合网| 99re99| 成人国产在线视频 | 91 在线| 久久精品视频在线免费观看 | 丝袜毛片 | 伦理片97 | 天天色影视综合 | 国产女人与拘做受免费视频 | 色婷婷av99xx| 一级毛片大全免费播放 | 中文字幕一区二区三区四区 | 成人h电影在线观看 | 欧美精品在线观看 | 日韩精品国产精品 | 欧美一级在线观看 | 国产精品国产亚洲精品看不卡15 | 久久国产香蕉 | 亚洲三级在线观看 | 亚洲精品一区二区在线观看 | 成人综合一区 | 亚洲一区二区不卡在线观看 | 久久逼逼 | 成年免费大片黄在线观看岛国 | 欧美精品一区二区三区四区五区 | 二区视频| 精品网 | 日韩三级电影在线看 | a在线视频 | 国产精品99久久久久久久久久久久 | 国产精品久久久久久久久久久久冷 | 91精品国产91久久久久久 | 国产三级大片 | 欧美日韩一卡二卡 | 久久中文字幕av | 欧美性吧| 国内自拍真实伦在线观看 | 中文字幕成人在线 | 日韩网站在线观看 | 黄色在线观看 |