문제

배포하고 자주 업데이트하고 싶은 MSI를 구축했습니다.불행하게도 MSI를 설치한 다음 동일한 MSI의 최신 버전을 설치하려고 하면 "이 제품의 다른 버전이 이미 설치되어 있습니다.이 버전의 설치를 계속할 수 없습니다...'라는 메시지가 나타납니다.MSI는 Visual Studio 2008 설치 프로젝트를 사용하여 구축되었습니다.최신 버전이 이전 설치를 덮어쓰도록 하기 위해 "이전 버전 제거" 속성을 true와 false로 설정하려고 시도했지만 아무것도 작동하지 않았습니다.이전 회사에서는 Wise 및 Advanced Installer로 만든 설치 프로그램에서 이 문제가 발생하지 않았다는 것을 알고 있습니다.내가 놓친 설정이 있나요?아니면 내가 원하는 기능이 VS 2008 설치 프로젝트에서 지원되지 않습니까?

도움이 되었습니까?

해결책

저는 VS 2005 Pro를 사용하여 이 작업을 올바르게 수행하는 수많은 MSI를 구축했습니다.

'Version' 속성이 확실합니까? 배포 프로젝트 증액됐나요?이 속성은 애플리케이션의 어셈블리 버전과 무관하며 MSI의 Version 속성이 덮어쓰려는 것과 동일한 경우 표시되는 오류 메시지입니다.

다른 팁

프로젝트의 버전 번호를 높이세요.

VS에서 설정 앱의 노드를 선택하고 F4를 눌러 속성을 확인하세요.버전 필드를 찾아서 증가시킵니다.

각 버전 간에 ProductCode를 변경해야 합니다. 이를 수행하지 않으면 표시되는 동작이 발생합니다.ProductCode는 프로젝트 속성에 표시됩니다.확인해 보세요 ProductCode에 대한 MSDN 온라인 도움말 더 잘 이해하기 위해.

이는 조금 더 복잡합니다.

설치 프로젝트에서 설치된 애플리케이션의 이전 버전을 자동으로 제거하려면 다음이 필요합니다.

  1. 증가 버전 재산(예:1.0.0에서 1.0.1로 ...세 번째 위치에서도 변경이 가능합니다)
    • 버전 설치된 애플리케이션 버전을 식별하는 설치 프로그램 프로젝트의 속성입니다.
  2. 변경 제품코드 속성이므로 설치 프로그램은 두 번 실행된 동일한 설치 프로그램이 아니라는 것을 알고 있습니다.
    • 제품코드 설치 관리자 프로젝트의 속성이며 Visual Studio는 다음과 같은 경우 자동으로 변경하도록 제안합니다. 버전 속성이 변경되었습니다
  3. "UpgradeCode" 속성 값을 유지합니다.
    • 업그레이드 코드 설치 프로그램 프로젝트의 속성이기도 합니다.
    • 전체 "업그레이드 라인"에서 동일하게 유지되어야 하므로 설치 프로그램은 무엇을 업그레이드해야 할지 알 수 있습니다.
  4. 제어판의 소프트웨어 목록에서 이전 응용 프로그램 버전도 제거하려면 다음을 설정하십시오. 이전 버전을 삭제 사실로

XP에서 Win7로 갈 때도 같은 문제가 발생했습니다.이 문제를 해결하려면 DetectNewerInstalledVersion을 False로 설정해야 했습니다.또한 다른 사람들이 언급한 것처럼 설치 프로젝트의 버전을 추가해야 합니다.

행운을 빌어요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top