WiX light.exe抛出Arithmetic操作导致溢出异常

时间:2012-03-02 12:03:11

标签: .net wix

我尝试为.NET应用程序构建msi文件时遇到以下异常。

----------+++ 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.

有人知道可能是什么问题吗?

1 个答案:

答案 0 :(得分:0)

wix二进制文件wix.dll存在问题。奇怪的是,有时它正在工作,有时却失败了。为了解决这个问题,需要在操作代码之后构建这个程序集。以下是我为解决问题而采取的步骤:

  1. 从' http://sourceforge.net/'下载代码站点。
  2. 在VS 2010环境中构建代码。
  3. 通过执行以下操作纠正SummaryInformation.SetProperty代码。 一个。首先收集长变量中的上下字节,而不是直接转换为int。 湾添加此方法的特殊处理。
  4. 添加程序集版本2.0.5805.0。
  5. 添加程序集文件版本2.0.5805.0。
  6. 使用VS 2010构建wix.dll程序集。
  7. 更改下载二进制文件wix.dll文件中的公钥和公钥令牌。
  8. 在我们的项目中复制新的构建wix.dll,它开始工作。
  9. 此致 Navanit Katiyar GlobalLogic pvt Ltd.