先說說什麼是打包部署和發佈,對於c/s模式打包就是把我們的程序打成壓縮包,打包將行李入包,發佈是將打好的包展開. 這樣的好處一是保護版權和安裝方面,二是打包會把cs文件編譯成爲dll文件,第一次運行的速度快,同時保護代碼.三是打包發佈可以節省控件,基本解決了安全性的問題,使得程序員的原codes不被泄漏.
說說打包和發佈的區別,發佈是沒有安裝文件的,要求服務器上必須安裝上一個frontpage server extension,發佈是把頁面文件aspx,資源文件放到網站裏,代碼編譯到程序集中放到bin中.
打包部署,就是打成一個msi文件,運行後將在服務器上自動新建一個虛擬的目錄,把文件的內容拷貝進去,拷貝的內容是你在打包中指定的.
下面就詳細講述VS C/S模式winForm打包部署.
基礎.
安裝項目的六個子項:文件系統註冊表文件類型用戶界面 自定義操作啓動條件.
我們最常用的是文件系統了.
也就是“文件系統編輯器”
“文件系統編輯器”中的文件夾可以包含文件、項目輸出和程序集。 項目輸出表示解決方案中另一個項目所包含的項,並且可以包含以下內容:主要的生成輸出(如可執行文件)、本地化資源、符號調試信息、內容文件(如 HTML 頁)和項目源文件。其中的每個輸出都稱爲項目輸出組,項目輸出組包含主要輸出(也稱爲鍵輸出)和任何附加的輸出與依賴項。還支持快捷方式的創建,這樣,您可以將文件放置在一個文件夾中,然後從桌面或另一文件夾中的快捷方式指向這些文件。
文件系統下有三個文件夾,"應用程序文件夾","用戶的'程序'菜單","用戶桌面".
“桌面文件夾”相當於“桌面”系統文件夾。 Windows會跟蹤系統文件夾的位置,因此無論文件夾的位置或名稱如何,放置在 “桌面文件夾”中的文件最後始終位於“桌面”系統文件夾中。
"應用程序文件夾":表示要安裝的程序需要添加的文件;可以在 “應用程序文件夾”下創建“應用程序數據”文件夾,這樣不論 “應用程序文件夾”位於目標計算機上的什麼位置,放置在“應用程序數據”文件夾中的文件都始終安裝在同一相對位置。
"用戶的'程序'菜單":表示應用程序安裝完畢,用戶的"開始菜單"中顯示的內容.
註冊表.
可以向註冊表中插入鍵,在安裝應用程序的同時創建註冊表項.
文件類型:
右擊可"添加文件類型"
“文件類型編輯器”包含一個窗格,其中顯示了文件類型和操作的分層列表。 默認情況下, “文件類型編輯器”包含一個 “目標計算機上的文件類型”節點;新文件類型可以添加到該節點的下面。
用戶界面:
系統自動提供一組在安裝期間顯示的默認的對話框.根據正在構建的項目的類型,所提供的這組對話樹中包含兩部分,安裝與管理員安裝.安裝部分包括終端用戶運行安裝程序時顯示的對話框,而管理員安裝部分包含系統管理員將安裝程序上傳到某個網絡位置時顯示的對話框.如果想要構建一個沒有用戶界面的安裝,只需要在對話框樹上刪除安裝部分中的所有對話框.或者從一組可用模版添加到安裝項目中.
啓動條件:
使用啓動條件編輯器來定義成功運行安裝所必須的條件.例如,特地你個版本的操作系統,配置啓動條件來搜索目標計算機上的某個特定文件\註冊表\或組件,在安裝時進行評估並按照啓動條件編輯器中所示的順序執行.
自定義操作:
"自定義操作"提供了一種在安裝結束時執行任務的機制。例如,您可能希望在安裝應用程序之前先配置好數據庫,此時您可以用自定義操作來完成數據庫的創建。自定義操作構建爲單獨的 .dll 或
.exe 文件,然後使用自定義操作編輯器添加到項目中,其中這些操作與不同的安裝階段有關。自定義操作編輯器包括幾個單獨的文件夾,用於放置執行 Install、Commit、Rollback或Uninstall 任務的二進制文件。
操作演練.
創建新部署項目.
- 在"文件"菜單上指向"添加",然後單擊"新建項目".
- 我們隨即出現的"添加新建項目"的對話框中,打開"項目類型"窗格中的"其他項目類型"節點,打開"安裝和部署項目",在選擇"Visual Studio Installer "
3.在"模版"窗格中,選擇要創建的部署項目的類型.vs爲我們提供了四種類型的部署項目提供了模版:合併模版項目安裝項目 web安裝項目和CAB項目.
這四種模版,
- 安裝項目 主要是通過使用InstallShield 2010 Limited Edition來創建、生成並打包windows應用程序和服務.
- 合併模塊項目安裝,可以利用"合併模塊"項目將文件或組建打包到單個模塊中,以便共享此模塊.產生的.msm文件可以包含任何其他部署項目中.
- web安裝,爲web應用程序生成安裝程序,web安裝項目的文件安裝在web服務器上的virtual Root 目錄中.
- CAB項目,創建cab文件,使用CAB項目可以從Web服務器下載到Web瀏覽器的ActiveX組建進行打包.
在這裏我們使用的是"安裝項目"模版,最終生成的是.msi文件,包含應用程序、任何依賴文件以及有關程序的信息,如註冊表項和安裝說明等.當msi文件在另一個臺計算機上分發運行時,安裝失敗,計算機則會返回到安裝前的狀態.
向解決方案中添加現有的部署項目
在"文件"菜單上指向"添加",然後單擊"現有項目".
添加了解決方案sln的文件.
將windows的應用程序添加到安裝程序中.
在我們建立一個"安裝項目"後,你會看到這樣的三個文件夾.(在文章的開始時已做講述.)
這三個文件夾依次是:
"應用程序文件夾":表示要安裝的程序需要添加的文件;
"用戶的'程序'菜單":表示應用程序安裝完畢,用戶的"開始菜單"中顯示的內容,一般這個文件夾中,需要創建一個文件用來存放:應用程序.exe和卸載.exe.
"用戶桌面":表示這個應用程序安裝完,用戶的桌面上的創建.exe的快捷方式.
在應用程序文件夾節點右擊,指向"文件",添加要打包的文件,添加的文件一般是程序的Debug目錄下的文件;
在應用程序文件夾節點右擊,指向"添加",然後單擊"項目輸出".
在列表中選擇"主輸出"組.在"配置"框中選擇"(活動)".單擊確定.
我們可以看到自動加載的依賴項.
爲啓動條件設置初值.右擊我們的安裝文件,選擇"屬性"
這樣安裝包就會打包.NET FrameWork,在安裝時不會從網上下載.NET FrameWork組件;但是安裝包會比較大。
在"生成"菜單上單擊生成.
以上便是完成了基本的打包.
可選的部署功能.
爲基於windows的應用程序創建快捷方式.
我們在"應用程序文件夾"節點下選擇應用程序的主輸出,右擊,選擇創建主輸出的快捷方式.
右擊屬性窗口,或F4顯示該快捷方式的屬性菜單欄.可以爲啓動系統的快捷方式選擇恰當的圖表.
雙擊進入添加圖標的窗口.
爲我們的.NET程序創建一個卸載程序,並在桌面上顯示卸載程序的快捷方式.
在"應用程序文件夾"中添加文件,文件位置:"C:Windows\System32\Msiexec.exe"或直接搜索該文件名.
簡要說說msiexec.exe,系統進程,是WindowsInstaller的一部分。用於安裝Windows Installer安裝包(MSI),對系統的正常運行是非常重要的,一般在運行Microsoft Update安裝更新或安裝部分軟件的時候出現,佔用內存比較大。
同樣我們要創建該系統進程exe的快捷方式,
我們的快捷方式如果是在桌面顯示的就拖動到"用戶桌面"文件夾.如果在開始菜單中顯示的,就拖動到"用戶的'程序'菜單"文件夾中.
點擊安裝項目,F4顯示安裝項目的屬性
vs中會給出提示該屬性的作用.找到productCode屬性,指定應用程序的唯一標識符.複製這個標識符到黏貼板.
粘貼卸載快捷方式屬性欄的命令行參數,在前加上/X空格.
這裏還在要說說給我們的安裝程序添加啓動條件.
此次步驟是檢查目標計算機上是否安裝了,Internet Explorer 5.0或更高版本,如果未安裝所需要的文件,將停止安裝.
添加啓動條件來檢查Internet Explorer版本(可選)
在"解決方案資源管理器"中選擇我們的安裝程序lfsfxyComputerSystem
在"視圖"菜單上指向"編輯器"然後單擊"啓動條件"
默認的依賴項NET Framework,且無法刪除,我們在這裏選擇如下.
我們可自行添加啓動條件.
右擊"啓動條件"文件夾,"添加啓動條件",可以自定義添加了.
再次生成解決方案.生成解決方案後,我們可以看到,debug文件夾中就是我們的安裝包.
在這裏還是要說說這裏面msi和exe兩個安裝程序的區別.關於具體的msi. http://hi.baidu.com/yinhorse/blog/item/5bd65387652f2727c65cc3d6.html
msi是Windows installer開發出來的程序安裝文件,它可以讓你安裝,修改,卸載你所安裝的程序.說白了msi就是Windows installer的數據包,把所有和安裝文件相關的內容封裝在一個包裏了. setup.exe也允許你安裝程序,但程序員在開發setup.exe的時候要比開發setup.msi困難的多,需要人工編寫和安裝,修改,卸載相關的很多內容.而msi把這寫功能都集成化了,易於開發WINDWOS程序安裝包.
如果我們選擇了安裝程序,"屬性"-->"系統必備", 添加了安裝系統必備,就會把系統必備的安裝包也會打包在debug文件夾中.在我們的debug中就有一個.NET FrameWork的安裝包.
在開始文件夾中.會看到我們的卸載.
在桌面有我們要顯示的程序啓動的快捷方式.
vs環境中自帶報表使用過程詳解:http://blog.csdn.net/xhf55555/article/details/7285325
vs環境中生成的文件夾類型詳解:http://blog.csdn.net/xhf55555/article/details/7653009
vs環境中快捷鍵高效使用詳解:請您繼續關注!
參考:http://www.cnblogs.com/souso/archive/2010/01/12/164571.html
更多探索見vs幫助:http://127.0.0.1:47873/help/1-4924/ms.help?method=page&id=02CBCE50-6FC2-4B89-BC32-3720A7651087&product=VS&productVersion=100&topicVersion=100&locale=ZH-CN&topicLocale=ZH-CN
來自:http://blog.csdn.net/xhf55555/article/details/7702212