2011-02-07 2 views
3

우리는 프로젝트의 수명 기간 동안 동일한 업그레이드 코드를 사용하는 InstallShield 제품을 보유하고 있습니다. 여하튼, 새로운 업그레이드 코드로 출시가되었으므로 이제 고객의 프로그램 추가/제거에서 여러 항목을 보게됩니다.Installshield - "불량"업그레이드 코드가있는 제품을 제거해야합니다.

다른 업그레이드 코드가 있는지 확인하고 현재 업그레이드 코드와 일치하지 않는 경우 제품을 확인하는 방법 (설치 스크립트, 아마도?)이 있습니까 (이전 버전으로 다시 설정해야합니다). 하나 그리고 절대 다시 변경하지 마십시오!)?

미리 감사드립니다.

+0

감사합니다 크리스토퍼 ... 앞으로 며칠 이내에이 문제를 해결할 것입니다. 정말 시간 내 주셔서 감사합니다 !!! – Jamie

답변

5

설치 관리자는 여러 개의 UpgradeCode 제품군에 속한 제품을 제거 할 수 있습니다. 이전 UpgradeCode와 새 UpgradeCode를 모두 포괄하는 또 다른 MajorUpgrade 규칙 (업그레이드 테이블)을 작성하면 문제가 없습니다.

1

응용 프로그램 설치 정보가 시스템 레지스트리에 저장되는 위치를 확인하십시오. 제품 코드가 저장된 위치를 찾을 수 있으면 레지스트리에서 코드를 읽고 스크립트를 작성하여 프로그램 제거 스크립트를 수행 할 수 있습니다.

1

저는이 문제를 직접 경험했습니다. 우리는 VS 2005를 사용하여 MSI를 구축했으며, 어떤 이유로 든 실수로 마지막 릴리스에서 업그레이드 코드를 변경했습니다. 이로 인해 RemovePreviousVersions 플래그가 설정되어 있어도 프로그램 추가/제거 대화 상자에 프로그램이 두 번 표시되었습니다. 루즈 업데이트 코드에 대한 항목을 넣기 위해 업그레이드 테이블을 편집해야한다는 것을 알았습니다.

이 프로세스는 InstallShield에서 더 쉬워야하지만, 대다수의 경우 사용해야하는 VS 지침이 포함됩니다.

VS 2005에서 업그레이드 테이블을 편집 할 수있는 권한이 없으므로 Microsoft Orca라는 프로그램을 설치해야했습니다 (MS에 멋진 코드 이름이 있지만 끔찍한 코드가 있음). 제품 이름). Windows SDK와 함께 제공되므로 이미 컴퓨터에 설치되어 있습니다. 다음은 링크입니다 : http://msdn.microsoft.com/en-us/library/aa370557%28v=vs.85%29.aspx

해당 프로그램에서 MSI 파일을 열면 목록 맨 아래쪽으로 업그레이드가 표시됩니다. 처리하려는 업그레이드 코드에 대한 새 항목을 추가해야합니다. 여기를 설명하는 링크는 다음과 같습니다 http://msdn.microsoft.com/en-us/library/aa372379%28VS.85%29.aspx

는 내가 4 (msidbUpgradeAttributesIgnoreRemoveFailure)의 특성으로, 올바른 버전 번호를 제거하고 싶었 업그레이드 코드 및 PREVIOUSVERSIONSINSTALLED의 ActionProperty에 새 행을했다.

이 내용을 올바르게 이해하면 기본적으로 MSI에 RemovePreviousVersions 플래그와 함께이 다른 업그레이드 코드를 고려하여 제거 할 것이라고 말했습니다. 그것은 내 경우에 효과가 있었으므로이 중 일부가 도움이 될 것입니다.

행운을 빈다.