Winform打包程式製作的捷徑指向錯誤的位置(指向安裝包檔案)

來源:互聯網
上載者:User

     剛剛開發完成的一個Winform項目,使用VS2008內建的打包工具對它進行打包(設定開始菜單的捷徑),安裝後,發現捷徑的目標指向有問題。(winform程式的打包過程參見網路上的相關資源),這裡我主要想說明打包後進行安裝完畢後,捷徑的指向問題。

1、打包後組建檔案說明 

    我們都知道通過VS工具內建的打包後會產生兩個檔案,一個是exe檔案,一個是msi檔案。

需要說明的是msi檔案時window installer開發出來的程式安裝檔案,它可以讓你安裝、修改、卸載你所安裝的程式,也就是說VS工具打包產生的msi檔案就是window installer的資料包,把所有和安裝檔案相關的內容封裝在一個包裡。VS工具打包產生的exe檔案是主要是用於檢查安裝的環境,當安裝的環境檢查成功後,會自動再安裝msi檔案。當然可能會有exe檔案也能直接安裝的,但是開發exe的時候要比msi困難多,因為需要編寫和安裝、修改、卸載相關的很多內容,而msi把這些功能都整合化了,易於開發windows程式安裝包。

2、 捷徑指向說明

     首先通過vs產生的exe檢查環境通過後調用msi檔案,安裝完畢後,右鍵捷徑的圖片,發現一個比較奇怪的問題:

 可以根據發現,捷徑的"起始地址"和"目標"都不對,除此之外還有對於捷徑還有以下的問題:

1、第一次點擊捷徑可以正常開啟軟體,但是當軟體安裝所在的檔案夾下有檔案更新或者刪除時候,會出現進度條。(進度條達到100%後也能開啟)。

2、把安裝包msi檔案刪除後,再次點擊捷徑,則無法開啟軟體。(提示:無法訪問安裝包檔案msi) 。

根據上面的現象,可以基本上確定兩點:(1)捷徑指向目標設定有問題。(2)捷徑指向的是MSI檔案。

至於提到的第一點:我測試發現我在程式啟動時候把安裝路徑下的一個檔案重新命名或者刪除,那麼每次啟動捷徑都從msi檔案重新安裝到安裝路徑下,因此才會出現進度條的現象。

3、問題的解決

最後我又試了幾次,以為是再程式打包的時候設定有問題,結果都沒有找到原因,沒有辦法只有需求網路資源,網路上有朋友說VS建立的捷徑不是標準的,是VS製作的安裝包的問題,但是可以對VS製作的安裝包msi檔案進行修正。

具體修正步驟如下:

(1)下載工具orca工具(msi檔案編輯工具) orcaMis

(2)安裝orca後,用orca開啟msi安裝包,在左邊的Table列表中找到Shourtcut表,在右邊記錄中找到案頭捷徑的記錄,修改該記錄的Target屬性為

[TARGETDIR]應用程式名稱.exe

(3)儲存修改後的msi檔案,重新安裝後產生的捷徑就可以尋找圖片和更改表徵圖了。

 

 

著作權說明

  本文屬學習筆記,歡迎轉載且註明文章出處,其著作權歸作者和部落格園共有。  

  作      者:Charles Chen

 文章出處:http://charles2008.cnblogs.com/  或  http://www.cnblogs.com/

 

 

 

著作權說明

  本文屬學習筆記,歡迎轉載且註明文章出處,其著作權歸作者和部落格園共有。  

  作      者:Charles Chen

 文章出處:http://charles2008.cnblogs.com/  或  http://www.cnblogs.com/

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.