亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 學(xué)院 > 編程設(shè)計(jì) > 正文

vs2008安裝部署工程制作教程[圖文]

2020-07-14 13:36:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
1.新建一個(gè)Class Library, 例如Name 為 CustomAction. 這個(gè)就是一個(gè)自定義安裝行為的類。

create library

2.       添加安裝類。在新建的Library里面添加一個(gè) Installer Class,名字我暫時(shí)定為MyInstallerClassDll

  install class

3.       重寫(xiě)基類的函數(shù)

    Commit

Install

OnAfterInstall

OnAfterRollback

OnAfterUninstall

OnBeforeInstall

OnBeforeRollback

OnBeforeUninstall

OnCommitted

OnCommitting

Rollback

Uninstall

每個(gè)函數(shù)對(duì)應(yīng)的是安裝過(guò)程中的不同時(shí)期。

我暫時(shí)重寫(xiě)了Commit函數(shù),但是還沒(méi)有自己的實(shí)現(xiàn)。

public override void Commit(System.Collections.IDictionary savedState)

   {

        base.Commit(savedState);

}

4.      新建一個(gè)setup工程,在Other Project Types里面,并且下拉框選中Add to Solution。我暫時(shí)命名為setup. 當(dāng)然這個(gè)前提是你有一個(gè)想安裝的程序。 或者有你想制作安裝程序的編譯后的文件。

   setup

5.      添加源程序文件。

切換Setup工程的視圖為File System

   change view

左鍵點(diǎn)擊Application Folder.這個(gè)文件夾就是放源程序文件的。User’s Desktop是放桌面快捷方式的,User’s Programs Menu是定義開(kāi)始菜單的。

application

在右邊空白的地方右鍵選中添加項(xiàng)目輸出文件

out

下面下來(lái)列表選中你要安裝的程序,比如我要安裝的是 WpfSetup。按住Ctrl鍵選中Primary output和 Contetn Files,點(diǎn)擊OK鍵。這樣就把需要安裝的程序的編譯后的主要文件都添加進(jìn)來(lái)了。當(dāng)然也可以手動(dòng)添加進(jìn)來(lái)如上圖選中Add->File然后瀏覽到你的release或者是debug后的文件夾,然后選中主要文件添加進(jìn)來(lái)。

7

6.      創(chuàng)建快捷方式。在剛剛添加的Primary output from WpfSetup(Active) 上面點(diǎn)擊右鍵,選擇創(chuàng)建快捷方式,然后重命名。

   8

9

把這個(gè)重命名的文件用鼠標(biāo)左鍵托到User’s Desktop文件夾里面,這樣的話就會(huì)在桌面上面生成一個(gè)快捷方式,然后再自定義開(kāi)始菜單的結(jié)構(gòu),安裝通常的做 法,我們?cè)赨ser’s Programs Menu文件夾里面新建一個(gè)文件夾用于放置我們安裝卸載以及幫助手冊(cè)之類的快捷方式。我定 義的文件夾是WPFSample,快捷方式的添加參照User’s Desktop里面快捷 方式的添加。

這樣的話安裝程序的文件結(jié)構(gòu)已經(jīng)完成了。

7. 設(shè)置系統(tǒng)必備屬性。

    在setup工程上面點(diǎn)擊右鍵選擇屬性。

   10

點(diǎn)擊 Prerequisites,在彈出的對(duì)話框里面選擇如下圖所示的選項(xiàng),一定要選擇Download prerequisites from the same location as my application. 當(dāng)然你也可以根據(jù)你的SDK選擇不不同的版本。如果你選擇的是3.5 Sp1。

11

如果在編譯的過(guò)程中出現(xiàn)了The install location for prerequisites has not been set to 'component vendor's web site' and the file 'dotNetFx35setup.exe' in item 'Microsoft.Net.Framework.3.5.SP1' cannot be located on disk.這樣的錯(cuò)誤你就需要進(jìn)行如下操作:

1.       打開(kāi)[Program Files]/Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages/

DotNetFx35SP1 文件夾,在x64 操作系統(tǒng)上是 %ProgramFiles(x86)% /Microsoft SDKs/Windows/v6.0A/Bootstrapper/Packages/DotNetFx35SP1

2.       修改Product.xml文件,在<PackageFiles>節(jié)點(diǎn)里面添加下 列內(nèi)容,然后保存。

<PackageFile Name="TOOLS/clwireg.exe" />
<PackageFile Name="TOOLS/clwireg_x64.exe" />
<tPackageFile Name="TOOLS/clwireg_ia64.exe" />

3.       打開(kāi)這個(gè)網(wǎng)址http://go.microsoft.com/fwlink?LinkID=118080,下載dotNetFx35.exe

4.       打開(kāi)命令提示符窗口(DOS窗口),并且進(jìn)入你下載的dotNetFx35.exe的文件夾

5.       執(zhí)行下面這個(gè)命令dotNetFx35.exe /x:。注意/x后面有個(gè)冒號(hào)呢。

6.       把解壓后的WCU/dotNetFramework里面的文件(如下圖)拷貝到上面路徑提到的DotNetFx35SP1文件夾下面

如果還有問(wèn)題

1. 在Product.xml找到 <PackageFile Name="dotNetFX30/XPSEPSC-x86-en-US.exe" 然后修改 PublicKey 的值為: 3082010A0282010100A2DB0A8DCFC2C1499BCDAA3A34AD23596BDB6CBE2122B794C8EAAEBFC6D526C232118BBCDA5D2CFB36561E152BAE8F0DDD14A36E284C7F163F41AC8D40B146880DD98194AD9 706D05744765CEAF1FC0EE27F74A333CB74E5EFE361A17E03B745FFD53E12D5B0CA5E0DD07BF2B7130DFC606A2885758CB7ADBC85E817B490BEF516B6625DED11DF3AEE215B8BAF8073C345E39589 77609BE7AD77C1378D33142F13DB62C9AE1AA94F9867ADD420393071E08D6746E2C61CF40D5074412FE805246A216B49B092C4B239C742A56D5C184AAB8FD78E833E780A47D8A4B28423C3E2F27B6 6B14A74BD26414B9C6114604E30C882F3D00B707CEE554D77D2085576810203010001

2.找到<PackageFile Name="dotNetFX30/XPSEPSC-amd64-en-US.exe" 按照上面的步驟修改。

12

8.設(shè)置安裝程序的屬性

在setup工程上面右鍵點(diǎn)擊選擇屬性。如下圖??梢赃x擇需要修改的屬性,比如語(yǔ)言,作者和制造商以及安裝程序的名字等等。

13

9.Rebuild 這個(gè)安裝部署工程,然后在debug或者release文件里面找到安裝文件,比如我的是WPFSample.msi. 雙擊就可以運(yùn)行了。

10. 自定義安裝界面

在setup工程上面點(diǎn)擊右鍵選擇用戶界面視圖

  14

打開(kāi)后如下圖,可以看到安裝分 下面三個(gè)部分,Start, Progress, End.我們可以在任意一個(gè)部分添加任意一個(gè)窗口。有些窗口需要用戶輸入?yún)?shù)的,這樣的話就需要在后臺(tái)獲得這些 參數(shù),這樣就需要我們開(kāi)始建立的CustomAction類了。

15

11. 自定義安裝行為,選中一個(gè)你添加的對(duì)話框,比如我選中的是TextBoxes (A),它有四個(gè)輸入框

我只需要兩個(gè)所以第三個(gè)和第四 個(gè)的Visible屬性都是false. 然后定義第一個(gè)和第二個(gè)輸入框的屬性名字,我定義的是NAME和PASSWORD。

16

切換到Customs Actions視圖

17

在Install和Commit文件上面右鍵添加上面定義的那個(gè)Custom Action.當(dāng)然這個(gè)Primary output已經(jīng)添加到了Application Folder里面了(添加方法參照上文)。這個(gè)也可以就是那個(gè)工程的.dll文件。

18

選擇Install或者Commit文件里面的CustomAction文件,查看屬性

19

在CustomActionData屬性里面輸入?yún)?shù)名稱和值例如/name=[NAME]這個(gè)表達(dá)式的意思就是定義一個(gè)變量名字是name值是前面添加的那個(gè)對(duì)話框的屬性名稱并用[]括起來(lái)。這樣就可以在自定義安裝類里面得到了。方法如下:

string name = this.Context.Parameters["name"].ToString();

     string pass = this.Context.Parameters["password"].ToString();

這樣就得到了輸入框的值。然后 在進(jìn)行一些邏輯操作。也可以拋出一個(gè)異常來(lái)終止安裝過(guò)程,并回滾。

     throw new Exception("Invalidate name");

回滾和卸載的程序我們也可以自定義,道理都是一樣的 。

12. 實(shí)現(xiàn)卸載

   找到msiexec.exe這個(gè)文件,通常在C:/WINDOWS 下面

   添加到Application Folder里面修改名字為Uninstall.exe(也可以不修改)。

   創(chuàng)建快捷方式,移到User’s Programs Menu下 面的自定義的那個(gè)文件夾下面如WPFSample文件下面

然后打開(kāi)屬性窗口,設(shè)置Arguments值為 /x ProductCode 20

這個(gè)ProductCode值在 Setup工程的屬性頁(yè)可以看到

21

這樣就完成了卸載程序了。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲欧美日韩爽爽影院| 欧美特黄一级| 国产成人精品国内自产拍免费看| 强迫凌虐淫辱の牝奴在线观看| 精品国内二区三区| 天天射天天爱天天射干| 国产精品欧美综合在线| 日韩一区二区三区高清免费看看| 精品sm在线观看| jizz性欧美| 亚洲国产中文字幕在线视频综合| 深夜成人在线| 中文字幕日韩一区二区三区| 在线观看av免费观看| 中文字幕在线日本| 国产娇喘精品一区二区三区图片| 一级日韩一区在线观看| 国产一级一片免费播放放a| 久久夜色精品国产欧美乱极品| 69久久精品无码一区二区| 国产成人精品一区二三区四区五区| 成人福利视频在线| 亚洲欧洲日本精品| 久久久久无码精品国产| 8x海外华人永久免费日韩内陆视频| 青青草免费观看完整版高清| 免费能直接在线观看黄的视频| 亚洲精品国产精品自产a区红杏吧| www.黄com| 国产美女视频一区二区二三区| 九九精品在线观看| 一级淫片免费看| 欧美性受xxxx| 欧美日韩一级二级| 日本视频一区二区在线观看| 领导边摸边吃奶边做爽在线观看| 五月天综合激情| www黄在线观看| 亚洲国产av一区二区| 日本高清不卡aⅴ免费网站| 国产66精品| 色一情一交一乱一区二区三区| 亚洲一区二区三区四区中文| 一起草av在线| www欧美com| 一本色道久久88综合亚洲精品ⅰ| 香蕉视频官网在线观看日本一区二区| 九色成人国产蝌蚪91| 欧美多人猛交狂配| 最近中文字幕在线观看| 日本一区二区三区精品| 色婷婷在线观看视频| 婷婷5月激情5月| 伊人久久久大香线蕉综合直播| 国产成人综合亚洲欧美在| 麻豆chinese极品少妇| 天堂在线中文网官网| 91免费看`日韩一区二区| 久久精品一区二区免费播放| 欧美多人爱爱视频网站| 精品999久久久| 免费观看国产视频在线| 久久精品五月婷婷| 一级片视频在线观看| 99精品久久99久久久久| 日韩电影免费观看高清完整版在线观看| 午夜先锋成人动漫在线| 久久这里精品国产99丫e6| 欧美精品中文字幕一区二区| 黄色大片免费看| 中文字幕乱码人妻综合二区三区| 992kp快乐看片永久免费网址| 欧美黑人经典片免费观看| 免费看av不卡| aaaaa级少妇高潮大片免费看| 日本在线免费播放| 亚洲综合激情另类小说区| 天堂精品中文字幕在线| 久久九九全国免费精品观看| 亚洲天天影视网| 丁香花在线电影小说观看| 亚洲视频在线观看免费| 日本在线观看大片免费视频| 国产麻豆精品入口在线观看| 日韩人妻一区二区三区蜜桃视频| 国产日韩三区| 一区二区免费电影| 天天av天天翘天天综合网| 国产中文字幕视频在线观看| 51亚洲精品| 国产精品45p| 黄色网址中文字幕| 国产免费一级视频| 免费在线观看成年人视频| 午夜爽爽视频| 成人自拍爱视频| 日韩欧美电影在线| 中文在线视频| 亚洲AV无码一区二区三区少妇| 99在线精品视频| 偷拍自拍在线看| 亚洲免费一级视频| 在线一区二区三区做爰视频网站| 99精品黄色片免费大全| 一区二区在线视频| 亚洲欧洲另类国产综合| 日本最黄一级片免费在线| 欧美日韩一区二区三区在线观看免| 影音先锋2020资源| 欧美在线aaa| 日韩视频在线播放| 影音先锋在线国产| 人人做人人澡人人爽欧美| aa级大片免费在线观看| 国产传媒在线视频| 欧美午夜大胆人体| 成人三级视频在线播放| 久久久久久久久久久网| 狠狠色狠狠色综合日日小说| 免费在线午夜视频| 91激情五月电影| 欧美调教在线| 国产视频1区2区3区| 青青草国产免费一区二区下载| 久久久久成人精品无码中文字幕| 国产精品91一区二区三区| 久久久久se| 亚洲欧美日韩不卡一区二区三区| 成年男女免费视频网站不卡| 日韩经典中文字幕一区| 日韩.欧美.亚洲| 一本久道中文无码字幕av| 国产精品探花在线播放| 日本精品免费一区二区三区| 91精品国产91久久综合桃花| 亚洲国产精品久久久男人的天堂| 亚洲欧美综合图区| 国产主播福利| 日韩精品中文在线观看| luxu259在线中文字幕| 91麻豆精品国产91久久久更新资源速度超快| 亚洲中文一区二区| 亚瑟一区二区三区四区| 国产一区二区三区四区五区美女| 日韩在线一区二区| 亚洲传媒在线| 国模吧无码一区二区三区| 国产精品久久免费观看| 久久一夜天堂av一区二区三区| jizzjizz中文| 精品偷拍各种wc美女嘘嘘| 日韩一级片大全| 99蜜桃臀久久久欧美精品网站| 最新日韩三级| 8x8x8x视频在线观看| 精品推荐蜜桃传媒| 午夜久久久久久久久久| 日韩精品在线一区二区三区| 中文字幕在线视频精品| 尤物视频在线观看国产| jizzjizzjizz中国| 亚洲欧美另类小说| 自拍偷拍你懂的| 动漫3d精品一区二区三区| 精品国产亚洲在线| 亚洲一区二区免费在线观看| 亚洲自拍偷拍第一页| 另类成人小视频在线| 国产亚洲一区二区在线| 亚洲最大在线| 国产一区二区视频在线看| 四虎国产精品永久在线国在线| 岛国一区二区三区高清视频| 免看一级a毛片一片成人不卡| 污网站视频在线观看| 亚洲精品在线播放| 8x海外华人永久免费日韩内陆视频| 日本伊人久久| 国产二区三区在线| 日产福利视频在线观看| 暗呦丨小u女国产精品| 成人午夜三级| 国产一级片在线播放| 国产国语性生话播放| 在线免费黄色网| 亚洲午夜精品久久久| y111111国产精品久久婷婷| 草民福利视频| 岛国精品一区二区三区| 天堂入口网站| 久久久综合精品| 午夜激情福利网| 久久久综合九色合综国产精品| 久久欧美中文字幕| 久久久999免费视频| 婷婷综合国产| 国产99久久久国产精品潘金网站| 欧美日韩精品在线一区| www视频在线看| 欧美老女人性视频| 国内成人免费视频| 首页综合国产亚洲丝袜| xxxxxxxxx欧美| 日韩欧美精品在线观看| 免费无遮挡无码永久在线观看视频| 国产亚洲成av人片在线观看桃| 特级西西444www大精品视频| 九九热国产精品视频| 国产精品视频午夜| 国产天堂av在线| 国产wwwxxx| 国产精彩视频一区二区| 粉嫩一区二区三区在线看| 国产精品国产三级国产aⅴ无密码| 亚洲天堂免费视频| 免费国产视频| 亚洲国产欧美国产综合一区| 日日悠悠久久| 三级国产在线观看| 欧美综合激情网| 日本久久亚洲电影| 精品国产aⅴ麻豆| 91短视频推广| 午夜国产一区二区| 日本一区二区三区在线视频| 日韩国产第一页| 成人爱爱网址| 蜜桃av噜噜一区二区三区麻豆| 久久中国妇女中文字幕| 久久9精品区-无套内射无码| 亚洲精品无吗| 国产精品入口夜色视频大尺度| 久久久久综合网| 国产毛片久久久久久国产毛片| 国产男女爽爽爽| 神马久久久久久久久久| 极品尤物av久久免费看| 国产又黄又粗又爽| 天使萌一区二区三区免费观看| 亚洲综合在线电影| 美女视频一区免费观看| 蜜臀久久精品久久久久| 国产一卡二卡3卡4卡四卡在线| 亚洲区成人777777精品| 国产精品不卡av| 日韩视频免费在线| 女生裸体视频网站免费观看| 美女露胸一区二区三区| 欧美视频一区二| 国产亚洲精品拍拍拍拍拍| 一本大道久久a久久综合婷婷| 国产88在线观看入口| 国产h片在线观看| 欧美xxxx在线观看| 黄色三级视频片| 3p在线观看| 国产精九九网站漫画| 国产精品偷伦视频免费观看了| 国产精品天天干| 91精品国产自产在线| 国产精品欧美极品| 97久久超碰福利国产精品…| 亚洲精品自拍第一页| 成人激情免费电影网址| 国产在线不卡一卡二卡三卡四卡| 日本aaa在线观看| 超碰国产精品一区二页| 国产a精品视频| 亚洲午夜一二三区视频| 欧美成人午夜剧场免费观看| 欧美一级视频免费| 国产精品日韩专区| 久久精品国产亚洲AV无码男同| 久久91精品国产91久久小草| 91精品天堂福利在线观看| 日韩av黄色在线| 精品国产一区二区三区久久久蜜臀| 亚洲欧美日韩精品久久奇米色影视| 欧美日韩成人免费| 九色porn| 好紧好硬好湿我太爽了| 欧美日韩国产另类不卡| 一区二区三区少妇| www婷婷av久久久影片| 91九色在线视频| 亚洲国产精品毛片av不卡在线| 精品国产sm最大网站免费看| 日日橹狠狠爱欧美超碰| 亚洲国产成人精品女人久久久| 四虎av网址| 韩日中文字幕| 亚洲精品国产无天堂网2021| 成人亚洲精品久久久久软件| 欧美精美视频| 亚洲精品一品区二品区三品区| 日韩激情av| 国产精品v欧美精品v日本精品动漫| 亚洲国产精品久久久| 国产精品高清在线观看| aa日韩免费精品视频一| 欧美1区2区3| 国产精品自拍视频| 超碰人人人人人人| 2019中文字幕全在线观看| 亚洲第一视频| 日本动漫理论片在线观看网站| 欧美 日韩 人妻 高清 中文| 亚洲美女电影在线| 麻豆免费在线观看视频| 又黄又骚的视频| 国产超级av在线| 视频一区二区在线播放| 最新电影电视剧在线观看免费观看| 亚洲成人一品| 国产精品亚洲二区在线观看| 成人激情av在线| 一区三区视频| 国产91av在线播放| mm1313亚洲国产精品无码试看| 性色av一区二区怡红| 日韩欧美国产小视频| www.超碰com| 亚洲国产精品99久久| 日韩成人中文字幕在线观看| 影音av资源网| 国产无套精品一区二区三区| 欧美色偷偷大香| 日本高清不卡视频|