VS2005를 사용하여 C#으로 작성된 Windows 서비스가 있습니다.VS2005 msi를 업그레이드하도록 설득하려면 어떻게합니까?
설치는 VS2005를 사용하여 만든 msi 파일을 설치하기 위해 msiexec를 호출하는 마법사를 통해 수행됩니다.
서비스의 한 버전에서 다른 버전으로 업그레이드하는 msi 파일을 생성하는 데 문제가 있습니다. 마법사 프로그램은 현재 설치된 버전의 검색, 서비스 중지, msiexec에 대한 적절한 명령 줄 사용 및 서비스 재시작을 처리합니다.
기존 msi의 버전 속성은 1.1.02이고 새 버전은 1.1.03입니다. 제품 및 업그레이드 코드는 동일합니다.
프로그램 추가/제거를 통해 수동으로 1.1.02를 제거하면 "깨끗한"시스템에 1.1.03을 설치할 때와 마찬가지로 잘 작동합니다.
1.1.02에서 1.1.03으로 업그레이드하면 동작하지만 최종 결과는 1.1.02입니다. 마법사가 업그레이드에 사용
명령 줄은 다음과 같습니다
에 msiexec/QB/I "MyProduct.msi"REINSTALL = "ALL"REINSTALLMODE = "VOS"
는 어디서 잘못된 것입니까? 나는 상당히 근본적인 무언가를 놓쳐 버렸음에 틀림 없다고 가정하고있다. ...
폴백 위치는 1.1.02를 설치하기 위해 마법사를 실행하기 전에 1.1.02를 수동으로 제거해야한다는 것을 고객에게 알리는 것이다. 그럴 필요가 없습니다.
추가 편집 :
이 (VS2005는 프롬프트로 당신이) 실제로 설치는 제품 코드 여태 경우 재설치를하지 못하게 그것으로, 모든 업그레이드 할 수있는 능력을 제거하는 제품 코드 변경 이전에 설치되었습니다.
모두 당신이 할 수있게 할 것입니다 설치 (그리고 당신은 보통의 "서비스가 이미 존재"- 타입 메시지).
예 - 설정을 확인했습니다. 결국이 부분을 포기하고 이미 이전 버전이 발견되면 새로 설치 한 다음 제거 마법사를 수행합니다. 정상적으로 작동하는 것으로 보이며 수동으로 아무 것도하지 않아도 최종 사용자가 업그레이드 할 수 있습니다. –
또한 제가 만들 수있는 한 비주얼 스튜디오에서 제작 한 MSI는 어쨌든 서비스 업그레이드를 허용하지 않는 것으로 유명하기 때문에 마법사의 작업을 통해 다음 트랩에 빠지는 것을 피할 수 있습니다. –
+1하지만 완전히 명확하게하기 위해 이것은 MAIN 프로젝트의 파일 버전을 업그레이드하는 것입니다 (설치 프로젝트가 아닙니다!). –