2012-03-02 128 views
2

我收到以下異常,嘗試爲.NET應用程序構建msi文件。WiX light.exe拋出導致溢出異常的算術運算

----------+++ Linking d:\analytics\trunk\bin64\snapshot.msi 
light.exe : error LGHT0001 : Arithmetic operation resulted in an overflow. 

Exception Type: System.OverflowException 

Stack Trace: 
    at Microsoft.Tools.WindowsInstallerXml.Msi.SummaryInformation.SetProperty(Int32 index,  Object property) 
    at Microsoft.Tools.WindowsInstallerXml.Binder.UpdateSummaryInfo(Database db) 
    at Microsoft.Tools.WindowsInstallerXml.Binder.GenerateDatabase(Output output) 
    at Microsoft.Tools.WindowsInstallerXml.Binder.Bind(Output output) 
    at Microsoft.Tools.WindowsInstallerXml.Tools.Light.Run(String[] args) 
Command returned non zero code - 1. 

有沒有人知道可能是什麼問題?

+0

問題被再現 「有時」。幾分鐘後,同一個項目就沒有做任何修改就建成了。 – ideafixxxer 2012-03-02 12:20:44

回答

0

wix二進制文件wix.dll存在問題。奇怪的部分是有一段時間它正在工作,有些時候它失敗了。爲了解決這個程序集需要在操作代碼之後構建的問題。下面是我遵循的步驟來解決問題:

  1. 從'http://sourceforge.net/'網站下載代碼。
  2. 在VS 2010環境中構建代碼。
  3. 通過執行以下操作更正SummaryInformation.SetProperty代碼。 a。首先收集長變量中的高位和低位字節,而不是直接轉換爲int。 b。添加這種方法的特殊處理。
  4. 添加程序集版本2.0.5805.0。
  5. 添加程序集文件版本2.0.5805.0。
  6. 使用VS 2010構建wix.dll程序集。
  7. 更改公鑰和公鑰標記,因爲它存在於下載二進制wix.dll文件中。
  8. 在我們的項目中複製新版本wix.dll,它開始工作。

問候 Navanit Katiyar GlobalLogic私人有限公司

相關問題