2012-01-12 3 views
2

를 적용 할 때 모든 파일을 제거, 다음 코드는 존재합니다윅스 - 윅스 만든 설치 프로그램의 이전 버전에서는 주요 별도의 업데이트

은 Windows 설치에서 버그를 해결하기 위해
<InstallExecuteSequence> 
<RemoveExistingProducts After="InstallInitialize" /> 
</InstallExecuteSequence> 

knowledge base article 코드에 설명이있다 수정되었습니다 :

<InstallExecuteSequence> 
<RemoveExistingProducts After="InstallFinalize" /> 
</InstallExecuteSequence> 

그러나이 지금, 내가 먼저 코드 설치로 프로그램을 설치하고 제거 설치 프로그램없이 두 번째 코드 설치로 프로그램을 설치하는 경우, 모든 파일을 제거하고 내 경로 모두에서 빈 폴더 (모든 파일이 존재 인스톨러에 equa가있다. 난 이름).

두 번째 설치 프로그램을 열고 복구를 누르면 모든 파일이 나타납니다.

무엇이 잘못되어이 문제가 해결 되었습니까?

P. 내 영어 :(죄송

답변

2

그냥 추측 : 제 1 및 제 2 설치가 동일한 파일을 설치하지만 것 같은데 다른 구성 요소 ID의이를 확인하려면, 당신은 열 수 있습니다 모두 MSI와 구성 요소의 한 부분으로. 파일을 orca.exe으로 변경하고 구성 요소 ID를 비교하십시오.

구성 요소 ID는 정확하게 참조 할 수 있도록 동일하게 유지해야합니다. 그렇지 않으면 다른 구성 요소가 동일한 파일을 관리하려고하므로이 경우 구성 요소가 제거 될 때 파일이 사라집니다.

Windows 설치 프로그램 규칙에 따라 구성 요소의 내용이 변경되지 않아야합니다 (예 : 절대로 파일을 제거하거나 파일을 추가하지 마십시오.) 그러면 wix에 의해 생성 된 구성 요소 GUID는 자동으로 안정된 상태를 유지해야합니다. 이것이 파일 당 하나의 구성 요소를 갖는 것이 가장 좋은 이유 중 하나입니다.

+0

파일의 이름은 같지만 파일이 다릅니다 (파일의 해시가 다릅니다). ComponentIds는 동일합니다. –

+0

@ amlet.fb : componentIds가 같은 경우 내 대답에 아무것도 설명하지 않습니다. 죄송합니다. –