現在存在著的一個明顯事實是所有的基於NET技術的應用程序或者產品都需要NET的運行庫支持因為NET在程序部署和分發方面有些類似它需要NET Framework SDK的支持(JAVA應用程序需要JDK的支持才可以運行)不幸的是目前的Winx系列以及WinNT/系列均沒有內置NET SDK(不難理解因為NET技術的推出的時間晚於上面提到的各種操作系統的發布時間)甚至連即將發布的WindowsXP都不會內置NET SDK
雖然沒有了NET SDK的支持就連一個簡單的在屏幕上面打印HelloWorld!的應用程序都無法運行那我們也不可能要求用戶必須手工安裝將近M的NET SDK後才能運行我們自己開發的應用程序!有沒有更為簡便的發布NET應用程序的方法呢?答案是肯定的下面我們就提供兩種可以正確部署和發布NET應用程序的方法
用VSNET來部署和分發NET應用程序
無庸置疑的是VSNET是開發NET應用程序的一個非常強大和快捷的集成開發環境(IDE)微軟歷來在配合自己的應用技術方面都能做到盡善盡美當然我想也只有微軟才能真正做到和NET技術的無縫銜接
下面我們就詳細看看如何利用VSNET來部署和分發NET應用程序為了講解的方便我們例舉一個非常簡單的Windows應用程序簡單的在屏幕上面放置一個按鈕Button
我們開發NET應用程序的測試環境是Windows Server中文版(SP)+VSNET Beta中文版
第一步在原有的項目基礎上再新建立一個項目並且選擇其中的安裝和部署項目
尤其需要注意選擇添入解決方案這個選項因為只有這樣才會將部署項目和我們自己的應用程序放置到同一個解決方案當中這一點千萬要注意了!
第二步點擊確定按鈕之後會出現安裝向導
因為我們的NET測試程序是一個Windows應用程序所以我們在上圖中選擇創建用於Windows應用程序的安裝程序(S)
點擊下一步(N)我們將會看到需要選擇的畫面
圖中的各個選擇項目的含義相信大家可以從中文名稱中直觀的理解到我們就不再多費口舌了一路點擊下一步直到最終安裝向導的完成會需要步最終會在當前的解決方案中添加一個名稱為Setup的安裝項目
在這裡我們稍微提一下在VSNET中的解決方案這個概念其實在VSNET中的所謂解決方案就類似於以前VB中的項目組概念也就是將多個項目集成到一起而已只不過VSNET中的解決方案這個概念的覆蓋范圍更廣泛而已罷了這個我們知道一下就可以了
第三步在完成上面的兩個步驟之後我們就會發現VSNET的安裝向導已經將我們的應用程序中所用到的各種程序集系統DLL文件資源文件等等依賴文件找到了並且我們還可以方便的繼續添加額外的我們需要的其他相關文件在這方面做的有些類似於InstallShield了不過不需要編寫安裝Script腳本
這樣我們選擇VSNET的菜單生成(B)—〉生成解決方案即可立即生成我們的安裝文件Setupmsi這個安裝文件你可以在你的應用程序解決方案所在的目錄中找到
找到了這個安裝文件你就會大吃一驚了即使我們的應用程序只有簡單的一句話打包之後就會有M之大!不過沒有辦法VSNET會生成一個簡潔的NET SDK放在我們剛才生成的那個安裝文件當中
剩下來的事情就是直接在沒有安裝NET環境的Windowsx/NT//XP中運行我們的這個Setupmsi文件就可以了!
手工部署和分發NET應用程序
在上面的第一種方法中我們可以感受到VSNET來做NET應用程序的方便和快捷但是並不是所有的人都是使用VSNET集成開發環境來開發NET應用程序的對於一些小的應用程序根本不需要安裝龐大的VSNET開發環境也可以方便的開發比如使用UtraEdit軟件來編寫小巧玲珑的NET應用程序也是一個不錯的選擇
在這裡我們就說說如何不使用VSNET來自己手工的部署和分發我們的NET應用程序首先分兩類
第一類基於Web的NET應用程序
對於這一類應用程序可以說在部署和分發方面是最為簡單的了我們只需要將NET運行環境安裝到我們自己的服務器上面就可以了用戶端需要的僅僅是兼容IE以上的任何浏覽器就可以了
第二類基於Windows的NET應用程序
對於這一類應用程序我們可以使用InstallShield安裝軟件來手工打包首先先在我們的NET Frameword SDK光盤中找到目錄dotNet在這個目錄裡面我們可以發現一個大小大約M的一個安裝文件這個就是我們的Net 的運行時刻文件類似於JAVA的JRE(JAVA運行時環境)這個文件的體積也是比較大的但是相對於NET SDK文件的龐大的M可以算是要好許多了
至於InstallShield的詳細使用方法我在這裡也無法透徹講解不過使用起來是非常方便的我只提出需要注意的地方
()在使用InstallShield中可以稍微編寫一段腳本來監測目標機器時候已經存在了NET的運行環境如果有了就不必安裝NET運行時文件了
()所有我們自己的DLL文件不在需要注冊只需要簡單的將他們拷貝到我們應用程序所在的目錄即可!
我們在這裡例舉的是使用InstallShield來制作安裝程序當然還可以使用其它的任何第三方安裝制作軟件來部署和分發我們的NET應用程序比如Windows Installer等等
好了最終我們比較這兩種部署和分發NET應用程序的方法我們可以看到使用第二種方法能夠帶來的一個潛在好處是我們可以將NET運行時環境文件和自己的應用程序分離開來從而在某些情況下可以大大減少部署安裝應用程序的文件大小而第一種方法就不可以了他將始終將NET運行時環境文件打包進入安裝文件但是第一種方法的優點也是顯而易見的就是比較智能化需要人干預的地方很少並且如果需要部署和分發的NET應用程序是比較大型的軟件的話我們推薦使用第一種方法!
相信在微軟正式發布NET以及VSNET之後部署和分發NET應用程序將會變得更加簡單和快捷但是最好的方式是希望微軟在下一版本的操作系統中能夠內置NET運行時環境就好了那樣的話我們就不必時刻隨身攜帶體積不算小的NET運行時環境文件了讓我們拭目以待吧
From:http://tw.wingwit.com/Article/program/net/201311/15633.html