2013-09-03 3 views
1

VC 2012 redist를 설치하고 제거하는 번들이 있습니다. 이전에 VC 2012 redist가 설치되어 있지 않은 경우 제대로 작동합니다. VC 2012 redist가 이미 설치되어있는 경우 내 번들을 제거하는 동안 VC 2012 redist도 제거됩니다. 이전에 설치 한 VC 2012 redist를 제거하면 안됩니다. 나는 persisted 속성이 "yes"로 설정된 변수 요소를 사용하려고했습니다. 하지만 어떻게 작동하는지 모르겠습니다. 이 모든 포인터는 크게 감사하겠습니다.WiX 번들을 설치하는 동안 이전에 설치된 ExePackage (재배포 가능 패키지)를 제거하지 않으려면 어떻게해야합니까?

+0

번들을 설치할 때 영구적으로 사용하고 싶지 않습니다. 설치할 때 제거하려고하지만 이미 설치되어 있으면 제거하지 마십시오. – user2744810

답변

0

ExePackage 요소를 사용하여 재배포 목록을 설치하고 있습니까?

그렇다면 번들을 제거 할 때 제거되지 않도록 설정할 수있는 "영구적"요소가 있습니다.

+0

답변 해 주셔서 감사합니다. 하지만 내 번들이 그것을 설치하는 경우 영구적 인 싶지 않아요. 설치할 때 제거하려고하지만 이미 설치되어 있으면 제거하지 마십시오. 영구 속성을 사용하여 가능합니까? – user2744810

+0

"영구적 인"속성은 패키지가 제거되지 않도록하는 것 같습니다. 이미 존재하는 경우 DetectCondition 및 InstallConditions를 사용하여 패키지를 설치하지 못할 수도 있습니다. 테스트를해야 하겠지만, 부트 스트 래퍼는 원래 설치하지 않은 패키지를 제거하지 않을 것이라고 생각합니다. – bmoberly

+0

하지만 실제로 이런 일을하는 데 어려움을 겪을 수 있습니다. 부팅 스트 래퍼가 재배포를 처음 설치 한 시나리오를 상상해보십시오. 그런 다음 사용자는 재분배가 필요한 다른 프로그램도 설치합니다. 사용자가 프로그램을 제거하면 재분할도 제거되어 두 번째 프로그램이 중단됩니다. – bmoberly

4

번들은 포함 된 패키지를 참조 할 수 있습니다. WixDependencyExtension에서 Provides 요소를 추가하면 동일한 Provides 요소를 사용하는 번들이 참조 횟수를 수정합니다.

VCRedist는 표준 Provides 키를 문서화하지 않으므로 패키지를 정확하게 참조 할 실제 방법이 없습니다. 따라서 VCRedist 팀에서는 영구적 인 것으로 표시 할 것을 기대합니다.

+0

고마워 Rob. 번들이 패키지를 설치했는지 여부에 관계없이 변수에 정보를 저장할 수있는 방법이 있습니까? 지금은 pre와 post라는 2 개의 미스를 생성하고 vc redist 전후에 번들에 통합하여 문제를 해결했습니다. 2012 패키지. 미리 weather vc redist가 설치되었거나 이전에 설치되지 않았다는 것을 나타내는 레지스트리 변수를 작성합니다 .VC redist 패키지의 detectcondition에이 레지스트리를 사용합니다. 이제 제거 조건 동안 패키지를 제거 할 것이기 때문에 – user2744810

+0

, pre가 vc redist 레지스트리를 true로 만들었다면 Post msi는 제거시 vc redist detect 조건에 대해 false가 될 값으로 레지스트리를 변경합니다.이 방법을 지금 당장 수행하고 있습니다. – user2744810

+0

지금은 내 목적에 부합하지만, VC 재분배를 영구히하는 것이 좋은 방법입니다. 하지만 제거하고 vc redist 패키지 이외의 생각이 방법을 deviced. – user2744810