VS C#程序打包覆蓋安裝不能更新的解決方法

最近寫個小程序,打包覆蓋安裝更新時總是不起做用,仍是原來的程序。小程序

 

在網上四處查找,productcode和ersion都已經更改,removepreviousversions也設置成true了,可就是不能更新。spa

 

最後對比了下程序,發現每次覆蓋安裝後安裝路徑下別的文件的最後修改時間都更新了,就是主輸出文件.exe的修改時間一直沒有改變過,又看了下控制面板,程序的版本確實一直在更新,那麼問題就出來了,程序不更新的緣由就在於主輸出文件一直沒有更新。.net

 

但是每次更新安裝包的時候都從新生成過,在項目文件中主輸出文件也是一直在更新的。在網上幾經周折,終於找到了緣由所在。code

 

在項目中的Properties文件夾下有個AssemblyInfo.cs文件,打開,拉到最後,有這麼幾行代碼:blog

 

[csharp]  view plain copy print ?
 
  1. // 程序集的版本信息由下面四個值組成:  
  2. //  
  3. //      主版本  
  4. //      次版本   
  5. //      內部版本號  
  6. //      修訂號  
  7. //  
  8. // 能夠指定全部這些值,也能夠使用「內部版本號」和「修訂號」的默認值,  
  9. // 方法是按以下所示使用「*」:  
  10. // [assembly: AssemblyVersion("1.0.*")]  
  11. [assembly: AssemblyVersion("1.0.0.0")]  
  12. [assembly: AssemblyFileVersion("1.0.0.0")]  

 


 

最後兩行就是致使主輸出文件一直不更新的罪魁禍首。ip

 

雖然每次生成,項目內容都更改了,可是生成的主輸出文件的版本一直沒有改變,這就致使了每次覆蓋安裝主輸出文件都不會被修改,由於他們的版本是一致的。rem

 

so,每次更新前,先修改主輸出文件的版本號,而後再生成項目輸出,而後修改安裝程序版本號、productcode,再複製productcode到卸載程序快捷方式,最後從新生成安裝程序。這樣就能夠覆蓋安裝了,安裝後的程序也能夠正常更新了。^_^部署

 

打包過程:get

VS 程序打包/安裝包製做 string

C# 程序打包 升級方案要點 

VS C#項目打包安裝程序(轉) 

C#WinFrom程序打包/圖解VS2008項目的安裝與部署圖解 

相關文章
相關標籤/搜索