2014-01-22 7 views
0

WiX 설치 프로젝트를 컴파일하려고 할 때 ICE30이 수신됩니다. 전체 오류는 다음과 같습니다 :두 개의 병합 모듈을 사용하여 컴파일 할 때 ICE30

ICE30: The target file 'DPFPSH~1.DLL|DPFPShrNET.dll' is installed in   
'[TARGETDIR]\Windows\DPDrv\' by two different components on an SFN system: 
'DPFPShrNET.DA2BFC77_FAFE_41D1_8BB6_134232B2EADC' and 
'DPFPShrXTypeLibNET.51D3E534_F1F9_4BC6_BFC5_B27F733081C7'. This breaks component reference 
counting. 

이제 특이한 점은이 두 가지 구성 요소가 서로 다른 두 가지 병합 모듈, DPOTDotNet.msm 및 DPOTShrDotNet.msm에 속하는 것입니다. 문제가되는 두 가지 구성 요소 인 Orca에서 볼 때 DPFPShrNet (DPOTShrDotNet.msm의 일부 임)에는 DPFPShrXTypeLibNet에도 하나의 dll이 있지만 동일한 이름의 dll (파일 테이블에 표시된 DPFPShrNet.dll)이 있습니다. (DPFPShrXTypeNet.dll). 오류로 DPFPShrNet.dll이 설치되는 것을 볼 수 없습니다.

InstallShield에서 WiX로 마이그레이션 중이며 InstallShield ism 파일은이 두 가지 병합 모듈을 참조하며 둘 다 해당 방법을 사용하여 올바르게 설치됩니다. WiX가 동일한 이름의 두 파일을 설치한다고 생각하는 이유가 있습니까? 내 프로젝트에서 DpOTShrDotNet.msm을 제거하면 올바르게 컴파일되지만 설치 한 후 GAC에 DPFPShrNet.dll이 누락되었습니다.

답변

1

ICE는 컴파일이 아닌 유효성 검사 (단위 테스트)입니다. 일부 ICE는 버그/디자인 부족이있는 것으로 알려져 있습니다. 이 것을 무시할 수 있어야합니다. 타사 병합 모듈은 문제가 될 수 있으므로 대신 이러한 구성 요소에 대한 exe/msi 재배포 프로그램을 찾아야 할 수도 있습니다. 또 다른 가능성은이 MSM을 자신의 MSI에 랩핑하고 WiX burn chainer를 사용하여 함께 연결하는 것입니다. 이는 위험에 대한 분리/방화벽/완화를 제공합니다.

+0

그래, 그 경고를 억제하고 결국 잘 설치 않습니다. 불행히도, MSI에서 그들을 포장하고 화상을 사용하는 것은 옵션이 아닙니다. 귀하의 의견을 보내 주셔서 감사합니다. –