詳解VS2008安裝部署說(shuō)明問(wèn)題
本文說(shuō)明VS2008安裝部署使用問(wèn)題,怎樣使用VS2008安裝部署的步驟。這些內(nèi)容都是一些門(mén)戶(hù)網(wǎng)站和技術(shù)論壇找到的,中間可能有不少錯(cuò)誤是我沒(méi)有挑出的,歡迎大家指正。
最近使用VS2008的安裝部署項(xiàng)目時(shí),發(fā)現(xiàn)了很奇怪的問(wèn)題:
1、安裝程序升級(jí)版本號(hào)后,安裝完成卻發(fā)現(xiàn)并沒(méi)有升級(jí)程序。
2、升級(jí)windows服務(wù)時(shí),提示“服務(wù)已經(jīng)存在”,中止安裝。
3、升級(jí)后,UserSetting配置數(shù)據(jù)恢復(fù)到默認(rèn)值,VS2008安裝部署并沒(méi)有繼承上一版本配置數(shù)據(jù)。
經(jīng)過(guò)反復(fù)測(cè)試我確認(rèn)是VS2008有了新的改動(dòng)。在網(wǎng)上找了很多時(shí)間,發(fā)現(xiàn)國(guó)內(nèi)還幾乎沒(méi)有人提出這個(gè)問(wèn)題。在國(guó)外的一些論壇里,也有人發(fā)現(xiàn)了和我一樣的問(wèn)題,并進(jìn)行了一定的討論。通過(guò)總結(jié)和大量實(shí)驗(yàn),我總算圓滿(mǎn)解決以上三個(gè)問(wèn)題。#t#
一、VS2008安裝部署項(xiàng)目的最新改動(dòng)
VS2008幫助文檔明確說(shuō)明,VS2008安裝部署方面與VS2005不同。綜合各種資料,總結(jié)如下:VS2005安裝程序,先完全卸載舊版本,然后全新安裝新版本。
VS2008安裝程序,則只是升級(jí),沒(méi)有卸載舊版本。安裝程序只是更新確實(shí)需要更新的文件,在最后安裝新文件的時(shí)候,才刪除舊文件。在MSI文件安裝過(guò)程中舊版本文件的刪除是在InstallExecute和InstallFinalize.之間執(zhí)行,而不是在一開(kāi)始就執(zhí)行。
可以參考http://msdn2.microsoft.com/en-us/library/aa371197(VS.85).aspx文件根據(jù)Fileversioningrules進(jìn)行升級(jí)。雖然FileVersion對(duì)VS生成的MSI文件沒(méi)有影響。文件的修改日期不能作為升級(jí)的依據(jù)。
可以參考http://msdn2.microsoft.com/en-us/library/aa368599(VS.85).aspxVS并沒(méi)有對(duì)文件進(jìn)行hash處理。所以,如果僅僅升級(jí)了安裝程序的Version,沒(méi)有升級(jí)程序集的FileVersion,安裝程序?qū)⒉粫?huì)對(duì)這些文件進(jìn)行升級(jí)。
二、VS2008安裝部署解決方法
1、程序安裝后并沒(méi)有升級(jí)的問(wèn)題
解決的關(guān)鍵就是,必須升級(jí)程序集的FileVersion。
最簡(jiǎn)單的辦法:修改解決方案中的所有AssemblyInfo.cs文件最后兩行