none
使用vs2005製作安裝檔,若執行檔需更新,如何重新製作呢?

    問題

  •  

    請教各位:

    我有一個以vb.net 2005 開發的專案,之後再用vs2005製作成安裝檔,

    目前遇到的問題是,當我專案有更新時,如何處理呢?曾經試過將修改

    setup的版本序號,但重新安裝後我的專案並無更新,且以控制台看

    新增或移除程式,會增加一個程式上去,可否做到像類似,微軟

    upgrade的方法,有試過想用clickonce方式佈署,但clickonce又

    無法安裝公用檔案,請問有比較簡單的做法嗎?

     

    ps.實在不想為了一支小小的程式..用installshield去包執行檔,

      感覺工程太浩大了.

    2007年10月24日 上午 08:49

解答

  • 建議你檢查一下封裝專案中該檔的 Permanent 屬性是否為 True

     

    預設專案輸出為 True ,其它插入的檔案為 False 。

     

    • 已標示為解答 Daisy1974 2009年2月4日 上午 03:17
    2007年12月28日 上午 08:49

所有回覆

  • HI,

     

    您可以將安裝專案的RemovePreviousVersions屬性設定為True, 在執行新的安裝程戋時將原先安裝的程式移除

     

    tihs

     

    2007年10月25日 上午 08:39
  •  

    這個屬性設成true無效耶.

    它還是會有"另一個版本的產品已被安裝,要重設或移除此產品,請用控制品台的新增/移除程式"

    還有其它設定要配合修改的嗎?

    2007年10月29日 上午 07:27
  • HI,

     

    可能是之前的版本未加上此設定, 您可以將舊版本移除, 將目前新建立的版本視為第一個版本, 之後再安裝更新的版本時, 應該就可以自動移除原先的版本了

     

    tihs

     

    2007年10月30日 上午 02:43
  •  

    您好:

    測試結果依然會有錯誤,以下為測試過程:

    1.先移除原先版本,將RemovePreviousVersions 屬性設成true

    2.重新建置,以此版本重新安裝 =>成功

    3.再建置一次,重新安裝=>失敗..

        依然會有"另一個版本的產品已被安裝。要重設或移除此產品,請使用 "控制台" 中的"新增/移除程式" 。"的error

    4.修改 UpgradeCode 及  Version 後建置,重新安裝=>失敗..

        依然會有"另一個版本的產品已被安裝。要重設或移除此產品,請使用 "控制台" 中的 "新增/移除程式" 。"的error

    5.修改ProductCode 後建置,重新安裝=>成功..

      但至 "控制台" 中的 "新增/移除程式" 去看..會有兩個一模一樣的應用程式...換句話說..若版本更新20次..

      它就會有21一個一模一樣的應用程式在上面..似乎不太合理...

     

    是否vs2005提供的安裝...無法做到版本更新的功能呢?

     

    2007年11月5日 上午 07:57
  • HI,

     

    RemovePreviousVersions 屬性的功能應該是OK的, 您可以找一台未安裝過此程式的電腦試驗一下, 不曉得是不是已經安裝過程式的影響

     

    tihs

    2007年11月6日 上午 06:25
  • HI,

     

    您有將新版的安裝程式專案的Version屬性修改之後再建置安裝程式嗎?

     

    tihs

    2007年11月6日 上午 06:36
  •  

    您好:

    經過多次來回測試,感覺微軟提供的安裝檔似乎無法達到版本更新的需求.

    1.ProductCode 一定要修改,否則會有"另一個版本的產品已被安裝。要重設或移除此產品,請使用 "控制台" 中的 "新增/移除程式",無論你改了UpgradeCode 及  Version 都沒有用..

    2.修改ProductCode 後,它似乎會認定與原版本是不一樣的應用程式.., 打開" "控制台" 的"新增/移除程式"來看,會有兩個相同名字的應用程式在上面, 但這不是我想要的因為若版本更新頻繁會造成這邊有多個應用程式在上面.

    還有其它比較好的做法嗎 ?

     

    2007年11月12日 上午 06:12
  • HI,

     

    我在我的電腦上試, 只要設定RemovePreviousVersion和Version屬性, 就可以成功移除之前的舊版程式, 應該沒有問題, 而且我沒有修改CODE

     

    tihs

     

    2007年11月13日 上午 03:46
  •  

    http://msdn2.microsoft.com/zh-tw/library/y63fxdw6(VS.80).aspx

    http://msdn2.microsoft.com/zh-tw/library/465253cd(VS.80).aspx

    http://msdn2.microsoft.com/zh-tw/library/aafz9hx4(VS.80).aspx

    其實它是會比較Upgrade code及Product code當新安裝時

    所以只要變更版本則product code會跟著變且需勾選RemovePreviousVersions 屬性的設定成true

    ,所以當重新安裝時會自動偵測並移除舊版本!

    這樣就可在避免使用者進入到內部來修改或移除設定.

    2007年12月11日 上午 06:07
  • HELLO:

    其實我也發覺會有同樣的問題,

    test1.當product code及version變更-->重新安裝-->發現程式新版本安裝成功-->但真正開啟程式後

    發現還是上個版本!?-->進入控制台-->開啟增加/移除程式-->發現當中的版本顯示新的版本-->開啟程式目的資料夾(d:\)-->發現還是舊的版本!?-->重新修護無效-->解除安裝再重新安裝-->成功!

    請問為什麼會這樣呢?是因為我用VS2005試用版的關係嗎?還是原本就有問題?

     

    alen55

     

     

    2007年12月28日 上午 08:16
  • 建議你檢查一下封裝專案中該檔的 Permanent 屬性是否為 True

     

    預設專案輸出為 True ,其它插入的檔案為 False 。

     

    • 已標示為解答 Daisy1974 2009年2月4日 上午 03:17
    2007年12月28日 上午 08:49
  • 璉璉謝謝你 !

     當permanent=true時於uninstall時不會刪除該檔案

     當permanent=false時於uninstall時會刪除該檔案(預設)

    http://msdn2.microsoft.com/zh-tw/library/3h4h6x67(VS.80).aspx

     

     

    alen55

     

    2007年12月29日 上午 03:13
  • HELLO:

    其實我也發覺會有同樣的問題,

    test1.當product code及version變更-->重新安裝-->發現程式新版本安裝成功-->但真正開啟程式後

    發現還是上個版本!?-->進入控制台-->開啟增加/移除程式-->發現當中的版本顯示新的版本-->開啟程式目的資料夾(d:\)-->發現還是舊的版本!?-->重新修護無效-->解除安裝再重新安裝-->成功!

    請問為什麼會這樣呢?是因為我用VS2005試用版的關係嗎?還是原本就有問題?

     

    alen55

     

     

    我也遇到一樣的問題..

    我希望我在安裝升級程式的時候,如果target已經安裝過舊的程式,則會出現remove or repair的 dialog.

    請問一下 Permanent 這屬性 "預設專案輸出為 True " 是在那裡設..
    2009年11月26日 上午 09:16
  • 璉璉的網誌有整理:
    [VS2005]安裝時移除舊版程式
    http://tlcheng.spaces.live.com/blog/cns!145419920BFD55A7!2290.entry


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2009年11月26日 上午 11:37