developer tip

WiX ICE 유효성 검사 오류

optionbox 2020. 11. 14. 10:09
반응형

WiX ICE 유효성 검사 오류


내 로컬 컴퓨터의 WiX에 이상한 문제가 있습니다. 문제는 간헐적이지만 솔루션을 몇 번 재 구축하면 WiX 프로젝트에서 ICE 유효성 검사 오류가 발생하기 시작합니다.

AppData\Local\Temp폴더 로 이동 하여 MSI가 포함 된 모든 임시 폴더를 삭제하면 솔루션이 다시 컴파일됩니다. 잠시 후 문제가 다시 발생하기 시작합니다. 임시 폴더를 계속 정리해야하는 것은 지속 가능하거나 만족스러운 솔루션이 아닙니다.

다른 사람이이 문제를 겪은 적이 있습니까? 유효성 검사 오류 코드는 항상 ICE30, ICE38, ICE64 및 ICE91의 조합 인 것 같습니다.

최신 정보:

요청한대로 다음은 가장 최근 실패의 항목입니다.

오류 LGHT0204 : ICE38 : ICE 내부 오류 1002. 반환 된 API
: 1615. 오류 LGHT0204 : ICE38 : 오류 2235 : /OU.AppFramework.Includes.msi, _Profile, UPDATE DirectorySET _Profile= 0
오류 LGHT0204 : ICE64 : ICE 내부 오류 1001. API 반환 :
1615. 오류 LGHT0204 : ICE64 : 오류 2242 : OU.AppFramework.Includes.msi, _Profile, ALTER TABLE DirectoryADD _ProfileSHORT TEMPORARY HOLD
오류 LGHT0204 : ICE91 : ICE 내부 오류 1001. API 반환 :
1615. 오류 LGHT0204 : ICE91 : 오류 2242 : OU.AppFramework.Includes.msi, _Profile, ALTER TABLE DirectoryADD _ProfileSHORT TempORARY HOLD

흥미롭게도이 실패는 어젯밤 사무실을 떠나기 전에 발생했으며 오늘 아침에 왔을 때 솔루션이 정상적으로 컴파일되었습니다. MSI가 WiX에 의해 빌드되는 임시 디렉토리의 중심에있는 것처럼 보이므로 빌드 프로세스가 파일을 잠글 수 있습니까?

업데이트 2 :

이제 600 개가 넘는 오류로 돌아갑니다. 대부분이 오류가 반복됩니다.

오류 LGHT0204 : ICE30 : ICE 내부 오류 (100) API 반환 : 1615
오류 LGHT0204 : ICE30 : 오류 2235 : AppFramework.Includes.msi, _ICE30SFN, SELECT Directory_Parent, Directory, DefaultDir, _ICE30SFN, _ICE30LFNFROM DirectoryWHERE Directory. Directory=? 그리고 Directory_Parent<>?

업데이트 3 :

@limpan의 제안을 시도한 후에도 문제가 여전히 존재합니다. 표시등이 MSI에 액세스하려고 할 때 MSI 출력 폴더가 잠기면 표시등이 표시하는 몇 가지 경고가 있습니다.

경고 549 '\ AppData \ Local \ Temp \ 2opu3hxf'디렉터리가 사용 중이며 삭제할 수 없습니다. light.exe


<RunWixToolsOutOfProc>true</RunWixToolsOutOfProc>WiX 프로젝트 파일에 추가해보세요 .

우리는 한동안 같은 문제가 있었고 임시 파일 삭제 및 msbuild 환경 변수 설정을 포함한 다양한 해결 방법을 시도했습니다. 이것들은 모두 한동안 작동하는 것처럼 보였지만 결국 (때로는 며칠 후에) 문제가 다시 나타날 것입니다.

내 컴퓨터에서 devenv.exe가 light.exe가 삭제하려는 파일을 잠그는 프로세스라는 것을 알았습니다. 또한 WiX 도구가 프로세스를 실행하지 못하도록이 프로젝트 설정을 언급 한 관련없는 스레드발견했습니다 . 나는 그것이 시도 할 가치가 있다고 생각했고 그것은 우리를 위해 문제를 치료 한 것 같습니다 (지금까지 ...)


이 문제도 내 환경에서 해결했습니다.

짧은 답변:

환경 변수를 추가하고 MSBUILDDISABLENODEREUSE=1Visual Studio를 다시 시작합니다.

긴 대답 :

빌드 중에 오류에 너무 집중했기 때문에 처음에는 보지 못한 경고가있었습니다.

임시 디렉토리를 삭제하지 못했습니다 : C : \ Users [username] \ AppData \ Local \ Temp \ 5 [uniqueFolderName] light.exe

수동으로 폴더를 제거하려고했지만 다른 프로세스에서 사용 중입니다.

많은 MSBuild.exe 프로세스가 빌드 중에 시작된 다음 다시 닫히지 않는 것으로 나타났습니다. 그 이유와 해당 동작을 변경하기 위해 수행 할 수있는 작업에 대한 자세한 내용은 Stack Overflow 질문 msbuild.exe에서 열린 상태로 파일 잠금을 유지합니다 .

이 스레드 : 그것과이 스레드의 솔루션 :

이 답변이 다른 사람에게 도움이되기를 바랍니다.


들어 ICE30 : ICE 내부 오류 (100) API가 반환 : 1615을 작동하는 경우,이 시도하고 참조하십시오

  1. Visual Studio의 모든 인스턴스를 닫습니다 (중요한 경우 일 수도 있지만 경우에 한함).
  2. 로 이동하십시오 C:\Documents and Settings\\****user id****\\Local Settings\Temp\.
  3. 이 .. 's12qgaks'와 같은 모든 폴더를 지 웁니다. 기본적으로 MSI 파일 이 포함되어 있습니다.
  4. 솔루션을 열고 다시 컴파일하십시오.

행운을 빕니다!


나도 같은 문제에 직면했습니다. 프로젝트 속성에서 도구 설정으로 이동하여 ICE 유효성 검사 억제를 클릭 합니다 .

Enter image description here


나를 위해 MSBUILDDISABLENODEREUSE = 1 (또는 명령 줄에서 / nr : false)은 문제를 해결하지 못했습니다. 그러나 <RunWixToolsOutOfProc> true </ RunWixToolsOutOfProc>는 작업을 완료했습니다.


I had the same issue. It turned out to be my Anti Virus software (OfficeScan) It had the intermediate files created by Light.exe locked and the validation process failed. Excluding the temp folder from virus scan or turning off ICE validation is not an acceptable solution.

If anyone has a better solution. I would like to know.

참고URL : https://stackoverflow.com/questions/14879411/wix-ice-validation-errors

반응형