鄭 佐 2005-5-31
部署用.net寫的程式時客戶系統需要安裝對應版本的.net Framework,而VS.NET自帶的安裝程式項目沒有提供一起打包架構的功能,這一點讓許多開發者覺得不爽,在csdn論壇上也有人提及如何友善的把.net程式部署到沒有安裝架構的windows系統上。幾個月前下載下傳了WMI的vs.net2003插件安裝上後在伺服器資料總管裡面就會顯示,是以一直以為有問題,後來也就沒有去關心它。
上個月,我手上剛好有一個.net應用程式完成需要打包,結果驚奇的發現在安裝檔案的同級目錄下一下子多出了好幾個檔案,終于明白是怎麼一回事了。
下面是編譯後的檔案清單:
Config.ini --安裝配置檔案
DotmanagementServer Installer.msi --msi安裝程式
dotnetfx.exe --.net 1.1 framework
langpack.exe --語言包
Settings.ini --設定檔案
Setup.exe --主安裝程式
Config.ini 檔案的内容如下:[config.ini]
IDS_NOT_SINGLE_INSTANCE=已有另一版本的安裝程式正在運作。 該應用程式一次隻能運作一個版本。
IDS_DIALOG_CAPTION=%s 安裝
IDS_SINGLE_INSTANCE_FAIL=CreateMutex 無法對單個的執行個體檢查配置設定句柄。
IDS_SETUP_FAILURE=%s 安裝失敗。如果問題繼續存在,請與産品支援人員聯系。
IDS_DEFAULT_PRODUCTNAME=應用程式
IDS_SETTINGS_INIT_FAILURE=安裝設定檔案'%s'在解析時出錯,或者無法定位該檔案。
IDS_CREATE_PROCESS_FAILURE=下列指令行的 CreateProcess 操作失敗: %s 。
IDS_INSUFFICIENT_PRIVILEGES=運作 %s 安裝程式要求具有本地系統管理者的權限。安裝程式現在退出。
IDS_DIALOG_TEXT=單擊“确定”開始安裝 %1 。單擊“取消”退出安裝。
IDS_ERROR_CAPTION=%s 安裝錯誤
IDS_VERSION_DETECT_FAILED=%1 的版本檢測失敗。請確定安裝程式存在于指定位置。%n%n傳回消息: %2
IDS_MSI_NOT_FOUND=無法定位産品安裝程式'%s'。安裝程式現在退出。
IDS_REBOOT_QUERY=安裝完成。現在重新開機嗎?
IDS_SETUP_SUCCEEDED=安裝成功。
IDS_INVALID_LANGID_CAPTION=無效的語言包代碼
IDS_FX_NOT_FOUND=無法定位 .NET framework exe 檔案'%s'。安裝程式現在退出。
IDS_INVALID_LANGID_MESSAGE=語言包代碼 %s 無效。跳過...
IDS_LANGPACK_NOT_FOUND=無法定位語言包 %s。安裝程式現在退出。
IDS_MDAC_NOT_FOUND=無法定位 MDAC exe 檔案'%s'。安裝程式現在退出。
IDS_FILE_NOT_FOUND=無法定位'%1'。安裝程式現在退出。
Settings.ini 檔案内容如下:[Bootstrap]
MsiPath=DotmanagementServer Installer.msi
ProductName=服務聚合處理管理系統
MdacVersion=2.71
BootstrapFx=true
FxInstallerPath=
LanguageID=2052
BootstrapLangPack=true
LangPackInstallerPath=
BootstrapMdac=false
我在微軟的Virtual PC 上的windows2000中對該程式進行了部署,整個安裝過程如下:
點選安裝程式 > 提示确定開始安裝,取消推出安裝 > 系統沒有安裝.net Framewrok提示是否希望安裝 Mircrosoft .NET Framework 1.1軟體包 > 沒有安裝IE 5.01或更高版本提示先安裝IE高版本 > .NET Framework 1.1安裝 > 提示安裝Microsoft .NET Framework語言套件 > 安裝應用程式向導 > 提示安裝成功。
點選程式運作,一切象預想的那樣。相信許多人已經在使用了,但更多人可能沒有用過這個傻瓜式的插件。
網上在.net程式部署方面有許多相關的文章,下面幾篇我認為是比較好的:
自定義 MSI 安裝
http://www.microsoft.com/china/msdn/library/langtool/vsdotnet/usvs04j7.mspx
把.NET程式部署到沒有安裝.NET Framework的機器上
http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/deployNETApp.mspx
部署ASP.NET的三大技術
http://tech.ccidnet.com/pub/article/c295_a68309_p1.html
使用 Visual Studio .NET 重新分發 .NET 架構
http://www.microsoft.com/china/msdn/library/netFramework/netframework/VCSdnnetdepvsredistdeploy.mspx
部署程式集
http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/misbasicinstincts.mspx
在VS.NET中通過Setup and Deployment Projects來制作自己的安裝程式的示例:
http://msdn.microsoft.com/library/en-us/vsintro7/html/vbconDeploymentScenarios.asp