2012-03-15 76 views
3

我一直在使用Pandion(一個開源的XMPP客戶端),它附帶wix腳本來生成安裝程序。WIX生成的MSI不復制可執行文件,複製其他文件,之前工作

到目前爲止,發佈補丁已經奏效:我運行包含的批處理文件,運行wix二進制文件並創建msi。

但是,使用最新更新時,安裝程​​序不再將可執行文件(Pandion.exe)複製到安裝目錄。所有其他400多個文件都被正確複製。

編輯:通過更新,我的意思是我所做的更改,這些更改僅限於幾個JavaScript文件。 wix文件全部保持不變。

我一直在想弄清楚問題是什麼,但我只是沒有與wix/msi的經驗,並不知道在哪裏看。

我已經啓用了詳細日誌記錄,它確認除了可執行文件外,所有文件都被複制。自動生成的component.wxs包含可執行文件作爲組件。安裝程序首先註冊所有組件,包括可執行文件,但是當它開始複製文件時,它會默默地跳過它並轉到下一個文件。

如果我再次運行安裝程序並修復安裝,則可以正確複製可執行文件。

如果我卸載所有內容並從第一個安裝程序重新安裝,所有以前的修補程序都可以正常工作。

回答

6

檢查並查看該特定文件(Pandion.exe)的版本是否大於以前的安裝版本。如果因任何原因該文件是在一個較小的版本,那麼它可能不會安裝,因爲:

  • 在更新安裝,維克斯着眼於.DLL文件的版本控制和.EXE文件
  • 如果版本的已安裝的文件(Pandion.exe)大於即將安裝的文件,則標記爲機器上存在較新版本
  • 在刪除先前版本的過程中,將刪除所有文件。
  • 在安裝更新過程中,Pandion.exe未被安裝,因爲它已被標記
  • 在重新安裝/修復期間,它看到Pandion.exe丟失並安裝它。
+0

這就是發生了什麼事。大約半個小時後,將源文件分配到較早的版本,我注意到聲明文件版本的頭文件已更改,版本設置爲1.0.0.0。將其更改爲高於以前版本的版本可以解決問題。 – carpat 2012-03-15 17:21:56