2015-01-26 5 views
0

설치 프로세스 중에 응용 프로그램 설치를위한 디렉토리를 C :/Test/(설치 위치의 루트 경로)로 선택했습니다. 이 위치에 성공적으로 설치되었습니다 (C :/Test /). 이 패키지를 제거하면 설치된 모든 파일과 하위 디렉토리가 제거됩니다. 그러나 설치된 루트 디렉토리 (예 : C :/Test)를 제거하지 않았습니다. 아래의 사용자 지정 작업은 설치 루트 경로 및 설치 파일 (하위 디렉터리 포함)을 삭제/제거하는 데 사용됩니다. 기본이 아닌 디렉토리에 설치하는 경우WIX MSI : 패키지를 제거해도 설치 디렉토리 루트 경로가 삭제되지 않습니다.

msiexec /x SetupProject.msi /L*V log.txt 

, [APPINSTALLDIR]이 제거 올바르게 설정되어 있는지 확인 : 설치 제거의

<InstallExecuteSequence> 
     <RemoveExistingProducts Before="InstallInitialize" /> 
     <Custom Action="ApplicationInstallDir" After="AppSearch">APPINSTALLDIR</Custom> 
     <Custom Action="DeleteInstallDir" Before="RemoveFiles" > 
      REMOVE="ALL" 
     </Custom> 
    </InstallExecuteSequence> 
<CustomAction Id="DeleteInstallDir" BinaryKey="CommandPrompt" 
     ExeCommand="cmd /C pushd &quot;[APPINSTALLDIR]&quot; &amp;&amp; (rd /s /q &quot;[APPINSTALLDIR]&quot; 2>nul &amp; popd)"   Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" /> 
+0

Windows Installer에서 적용 할 수있는 cmd를 세션을 호출 할 필요없이 자동으로 제거해야합니다. 설치 프로그램에는 다른 문제가 있습니다. –

+0

.. 그리고 Chris의 의견 외에도 WiX가 RemoveFile 요소를 제공하기 때문에 코드를 사용하지 않을 것입니다. – PhilDW

답변

1

사용 자세한 로깅은 문제의 뿌리를 찾을 수 있습니다. (나를 위해, 그것은 아니었다.) 더 나은 방법이 될 수 있음을

참고 :

윅스는 RemoveFolderEx와 파일 및 폴더의 재귀 제거 지원은. 사용 방법은 hass.de에서 확인할 수 있습니다. 이렇게하면 남은 파일이 제거되고 루트 설치 경로를 포함하여 모든 디렉토리가 삭제됩니다. 사용자 지정 DLL 동작을 RemoveFolderEx으로 전환했는데 정상적으로 작동했습니다.

가 귀하의 문제도 this question

+0

안녕하세요 -이 솔루션이 효과가 있었다면 누구나 의견을 말할 수 있습니까? 나는 비슷한 문제가있어서 다른 해결책을 찾고 있습니다 ... – murtazat

+0

그것은 나를 위해 일하지 않습니다. 여전히 문제가 있습니다. 그리고 Windows-Xp m/c에서는 로그 파일 (사용하는 동안 생성되는 로그 파일)을 제거하지 않습니다. 그러나 이러한 로그 파일은 Windos-7 및 Windows-8의 경우 제거 중에 삭제됩니다. – mallikgm