2012-03-02 2 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

답변

0

wix 바이너리 wix.dll에 문제가 있습니다. 이상한 부분은 그것이 작동하고 언젠가는 실패하는 경우도 있다는 것입니다. 이 문제를 해결하려면 코드를 조작 한 후에이 어셈블리를 빌드해야합니다. 다음은 문제를 해결하기 위해 수행 한 단계입니다.

  1. 'http://sourceforge.net/'사이트에서 코드를 다운로드하십시오.
  2. VS 2010 환경에서 코드를 작성하십시오.
  3. 다음 작업을 수행하여 SummaryInformation.SetProperty 코드를 수정하십시오. a. 먼저 int로 직접 변환하는 대신 long 변수에서 상위 바이트와 하위 바이트를 수집하십시오. 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 Pvt 주식 회사

관련 문제