2017-02-02 13 views
0

InstallShield MSI 설치 프로그램의 부 업그레이드 (처음부터 올바른 용어로 생각하십니까?)로 처음으로 문제가 있습니다. 이전에 여러 번 해본 적이있는 것처럼 설치 프로그램에서 필요한 값을 변경했습니다. "제품 버전"을 "2.0.12"에서 "2.0.13"으로 설정하고 구성 요소 파일/어셈블리 버전을 "2016.12.19.1415"에서 "2017.1"로 업데이트했습니다. .30.1037 ". 그러나 업그레이드를 실행하면 구성 요소가 2016 버전에서 2017 버전으로 업그레이드되지 않습니다. [848 16 : 01 : 32] :Installshield MSI가 파일을 업데이트하지 않습니다.

MSI (들) (10 4C :) 구성 요소 : I는 MSI 로그에서 얻은 아래

구성 요소에 대한 많은 정보를 인 EAS.Common.SignalR .Client.dll; 설치됨 : 로컬; 요청 : Null; 액션 : Null

편집 : 이전 버전의 설치 프로그램으로 되돌리고 업데이트를 추가했습니다. 이제 업그레이드가 올바르게 작동합니다. 그래서 내가 추가 한 새로운 구성 요소와 관련이 있다고 생각합니다.

답변

2

대부분의 사람들은 덜 효율적이지만 주요 업그레이드는 더 간단하지만 더 유연합니다. 경미한 업그레이드에는 구성 요소 규칙 및 수행 할 수있는 것과 수행 할 수없는 것에 대한 엄격한 제한에 대한 강력한 이해가 필요합니다. 이를 위해서는 개발팀이 설치 개발자에게해야 할 일에 대한 규율이 ​​필요합니다.

사소한 업그레이드를 수행하려는 경우 MSIENFORCEUPGRADECOMPONENTRULES property을 사용하여 준수 여부를 완전히 테스트하십시오. 이렇게하면 작동하는 것처럼 보이지만 예상대로 끝나지 않는 설치가 아니라 버그를 찾는 데 도움이 될 수 있습니다.

+0

문제는 이전 설치에서 있었던 구성 요소를 제거했기 때문입니다. 구성 요소를 "1 = 0"조건으로 설정하고 "DONOTDELETE_ {name}"으로 이름을 변경했습니다. –

+0

구성 요소의 이름을 바꾸는 데주의해야합니다. MSI는 기본 키가 변경되는 것을 정말로 좋아하지 않습니다. 참고로 MSI < 4.5. For > = 4.5를 사용하는 경우 Transitive Component 비트를 사용하여 "puncturing"구성 요소에 대해 읽으십시오. MSIUNINSTALLSUPERSEDEDCOMPONENTS에서 읽습니다. http://stackoverflow.com/questions/23102970/remove-file-during-minor-upgrade –

+0

구성 요소 및 기타 기본 키의 이름 바꾸기 관련 경고 문구 : https://blogs.msdn.microsoft.com/windows_installer_team/2007/03/07/임의 레이블 - 기본 키로 사용됨 - 버전 간 변경 안됨/ –

관련 문제