2009-10-16 63 views
1

過去我遇到過很多這個問題,但從未真正找到答案。當我在Visual Studio 2008中創建一個安裝工具包時(如果這改變了某些東西,我的項目通常在VB中),這一切似乎都可以正常工作。但是,當我部署安裝套件的新版本時會發生一些奇怪的事情:在VS.2008中設置工具包

安裝過程很順利(它檢查版本以查看它是否與通常一樣),註冊表中的更改已完成(我認爲在註冊表中或Windows存儲其操作系統的「添加刪除程序」部分數據的位置有一些變化),但這些文件沒有更改,所以我仍然堅持使用舊版本!

如果我嘗試安裝舊版本,它會告訴我新版本是安裝的,因此不會允許它,從而確認在安裝過程中更改了某些內容。此外,當我嘗試重新安裝新版本時,我會收到通常的刪除和修復選項。那麼如果我修復,沒有什麼改變。如果我刪除它,那麼應用程序將被成功刪除。我應該從頭開始嘗試重新安裝新的安裝套件(在新PC上,從「添加 - 刪除程序」選項中刪除之後或使用安裝套件中的「刪除」選項),然後安裝新版本。

它正在爲我在2008年做的每一個項目都做到這一點,我很確定我做的一切都是正確的,因爲我在VS.2005項目中做了同樣的事情,並且他們工作的很好。這是2008年的一個已知問題嗎?有沒有修復?

謝謝

回答

2

使用vs2008中的windows安裝程序有兩個重要的版本。一個是安裝程序項目本身的屬性中的版本。更改安裝程序版本會彈出,要求您對產品代碼進行類似的更改。如果我沒有弄錯,碰撞這個版本本質上會創建一個不同的安裝包來覆蓋現有的安裝目標(vb應用程序)並最終導致版本不匹配。

另一個版本位於您的vb應用程序中,並且是vb app項目屬性的應用程序選項卡中的程序集或文件版本。

根據您的投訴,您應該更改vb應用程序的程序集版本時,聽起來您正在更改安裝程序版本。

我可能會反過來,自從我使用vs安裝程序以來已經有一段時間了。

+0

很抱歉,我在安裝程序中更改了版本,因爲我確實收到了產品代碼更改彈出窗口。 不知道在2008年它是否是同一件事,但是當我更改代碼並嘗試在不更改版本的情況下安裝它時編譯部署工具包時,會收到錯誤消息,指出版本不同並且會拒絕安裝。 – 2009-11-16 12:57:55

+1

好吧,我拿出舊代碼,我已經解決了這個問題,這些都是必要的步驟: 在安裝項目屬性 DetectNewerInstalledVersion =真 InstallAllUsers =真 RemovePreviousVersions =真 每個部署構建之前更改安裝包版本要大於以前的版本,並且它必須大於1.0.0 確認彈出窗口是更改產品代碼。 並更改您的vb應用程序的程序集版本。它也必須大於1.0.0.0 然後它應該刪除舊的並安裝新的。 – Slaftos 2009-11-16 18:49:09

+1

O和當前版本將不得不手動卸載,但一旦你得到這個設置每次安裝後應該是好的。 – Slaftos 2009-11-16 19:11:13

0

您的有效載荷中是否有VERS資源? 也許安裝程序檢測到你正在安裝的應用/ DLL的版本沒有改變(從0.0.0.0到0.0.0.0)。

如果您沒有vers,請添加並查看是否有幫助。

祝你好運。

+0

你在我的有效載荷中由VERS做什麼? – 2009-11-13 18:54:09