2012-12-14 5 views
1

설치시 XML 파일에 추가하는 요소를 제거 할 때 제거하는 데 어려움이 있습니다. 내 설치는 다음과 같습니다. XML 파일은 설치하기 전에 이미 컴퓨터에 있으며이 설치 관리자는 응용 프로그램에 대한 "추가 기능"용이므로 설치 후 제거 할 수 없습니다. 설치시 XML 파일에 몇 가지 요소를 추가하지만 제거시 해당 요소 중 일부만 제거하려고합니다.

나는 온라인 답변을 검색해 왔으며 내 상황에 맞는 것을 찾을 수 없습니다. 이 게시물의 구문 복사 시도 : Deleting XML elements in WiX,하지만 여전히 작동하지 않습니다. 그러나 설치시 기존 요소를 제거하여 요소가 이미 존재하는 경우 설치시 교체를 수행합니다. 즉, 요소 ​​삭제는 설치시 작동하지만 정확히 동일한 태그 (물론 Id attr 제외)는 제거시 작동하지 않습니다. 나는 마침내 문제를 파악WiX XmlConfig : 제거시 제거되지 않은 요소

<Component Id="C_Component" Guid="GUID-HERE"> 
    <File Id="MainProductFile" ... /> 
    <!-- XmlConfigs for installation are here --> 
    <util:XmlConfig Id="XMLDEL_binding" 
       File="[FILE_DIR_PATH]\File.config" 
       Sequence="1" 
       On="uninstall" 
       Action="delete" 
       ElementPath="/configuration/system.serviceModel/bindings/customBinding" 
       VerifyPath="/configuration/system.serviceModel/bindings/customBinding/binding[\[]@name='!(wix.binding.name)'[\]]" 
       Node="element" /> 
    <util:XmlConfig Id="XMLDEL_endpoint" 
       File="[FILE_DIR_PATH]\File.config" 
       Sequence="2" 
       On="uninstall" 
       Action="delete" 
       ElementPath="/configuration/system.serviceModel/client" 
       VerifyPath="/configuration/system.serviceModel/client/endpoint[\[]@name='!(wix.endpoint.name)' and @bindingConfiguration='!(wix.endpoint.bindingConfiguration)'[\]]" 
       Node="element" /> 
</Component> 

답변

1

:

다음은 내 코드입니다. [FILE_DIR_PATH]에는 제거시 아무런 가치가 없다는 것을 깨달았습니다. 이 속성은 RegistrySearch에 의해 획득되었습니다. 그래서, 나는 그것을 해결하기 위해해야 ​​할 일을했을 모든 Secure로 속성을 선언했다 :

<Property Id="FILE_DIR_PATH" Secure="yes"> 
    <RegistrySearch ... /> 
</Property> 

내가 다른 설치와 수리 문제를 해결하기 위해 노력하는 동안이 몇 가지 문제를 해결하는 것을 발견했다. 나는이 게시물이 유용하다는 것을 알았다 : Wix installer blanks out registry setting when repairing.

또한 Rob Mensching의 블로그 게시물이 유용합니다. http://robmensching.com/blog/posts/2010/5/2/The-WiX-toolsets-Remember-Property-pattern