2014-06-12 7 views
1

나는 WiX Pyro (using purely WiX toolset)를 사용하여 MSP 패치 파일을 만들었습니다. 그러나 만들어진 MSP 파일에는 내용이 변경되었지만 버전 번호는 변경되지 않은 것으로 보입니다. 내 생각에, 그 파일의 대부분은 메인 컨텐츠에서 실제로 변경되지 않고 Visual Studio에 의해 재 빌드됩니다. 그래서, 그것은 Pyro가하는 바람직한 행동 일 수 있습니다.변경되었지만 동일한 버전 번호를 가진 파일을 WiX Pyro를 사용하는 MSP에 포함시키는 방법은 무엇입니까?

그러나 고객이 최신 MSI에서 설치 한 파일과 MSP 패치로 업데이트 한 파일이 다른 이유를 묻습니다. 따라서이 파일을 MSP 패치에 포함시킬 방법이 있는지 알고 싶습니다. 또는 고객에게이 두 파일 세트 (최신 MSI, 이전 MSI + MSP)가 동일하므로 제품을 안전하게 사용할 수 있다고 고객에게 알릴 수 있습니까? (물론, 내 파일 버전 관리가 체계적이지는 않지만 가볍습니다. 그러나 MSI의 버전 규칙은 너무 엄격하고 다소 유연하지 않습니다.)

+0

아마도 각 어셈블리의 마지막 버전 번호 (빌드 번호)를 자동 증가하도록 Visual Studio를 설정할 수 있습니까? 1.0.0. * 또는 그런 식으로. –

답변

2

Windows Installer 파일 업데이트 규칙은 그대로이며, 당신이 그들을 변화시킬 것이라고 생각하지 않습니다. 표준 규칙은 Windows에 파일이 버전을 증가시켜 업데이트된다는 것을 말하면 설치 시간에 더 높은 버전이 더 낮은 버전을 대체하게됩니다. 이것이 패치를 생성하는 도구가 버전 규칙을 사용하는 이유입니다. 버전 규칙이없는 파일을 포함해야하는 이유는 무엇입니까? 서비스 팩, 패치, 핫픽스 등은 모두 파일 버전에 기반합니다.

원하는 파일 버전을 사용하려면 패치 사용을 중지하고 RemoveExistingProducts를 먼저 수행하는 주요 업그레이드를 수행하십시오. 그러면 모든 이전 파일을 제거한 후 새로운 사람.

그러나 이들이 관리되는 코드 파일이고 파일 버전을 증가 시키면 어셈블리 버전이 증가한다는 것을 의미하므로 AssemblyFileVersion을 사용하여 파일 버전을 증가시키고 어셈블리 버전 만 남겨 둡니다.

+0

Phil, REINSTALLMODE = emus가 작동합니까? http://msdn.microsoft.com/en-us/library/aa371182(v=vs.85).aspx. 필자는이 방법을 권장 할 것인지 확신 할 수 없다고 생각합니다. 패치가 기본 emus REINSTALLMODE를 특징으로하는 patch.exe에 래핑되지 않는 한 기본 명령 줄이 omus 인 경우 오류가 발생할 가능성이 있습니까? –

+0

어셈블리 빌드 버전 번호를 자동으로 증가시키는 것이 좋습니다. 업그레이드 테이블 및 ProductVersion처럼 파일 교체가 3 자리로만 작동하는지 확실하지 않습니다. –

+0

좋아요, 그러면 msp를 만들 때 msi 버전 규칙을 우회 할 방법이 없습니다. 맞습니까? – sky