2013-11-27 3 views
3

WiX 3.7을 사용하여 MSI를 구축했습니다. 내 *의 .wixproj 프로젝트를 빌드 할 때, 나는 다음과 같은 오류가 발생합니다 :내 WiX 기반 MSI 프로젝트에서 왜 ICE24가 '2014.1.1.4'가 잘못된 버전 문자열이라고 말합니까?

error LGHT0204: ICE24: ProductVersion: '2014.1.1.4' is an invalid version string. 

우리 회사가 출시 연도의 주요 버전 특이한 버전 규칙을 사용합니다. 그러나,

A version string has the format xxxxx.xxxxx.xxxxx.xxxxx where x is a digit. The maximum acceptable version string is 65535.65535.65535.65535.

그게 사실이라면 this blog에 따라, 왜 ICE24이 제품 버전에서 트리거?

답변

7

StackOverflow에서 ICE24의 다른 적용 범위를 찾을 수 없어서 제 질문에 대답하고 있습니다. ProductVersion property에 대한 세부 정보 링크는 MSDN documentation on ICE24입니다. 여기가 말해야하는 내용은 다음과 같습니다

The format of the string is as follows:

major.minor.build 

The first field is the major version and has a maximum value of 255. The second field is the minor version and has a maximum value of 255. The third field is called the build version or the update version and has a maximum value of 65,535.

그래서 문제가 내 주요 버전 (2014)은 네 번째 자리는 문제가되지 않습니다 255

의 최대 값을 초과한다는 것이다. MSDN에 따르면 :

Note that Windows Installer uses only the first three fields of the product version. If you include a fourth field in your product version, the installer ignores the fourth field.

따라서 도덕적 인 설명은 주 버전 번호와 부 버전 번호를 작게 유지하는 것입니다. 희망이 다른 사람을 도와주세요!

+0

그래, 버전 라벨링 체계를 채택하고 어디서나 적용 할 수 없다는 것을 알았습니다. 하지만 변경하지 않아도됩니다. MSI의 ProductVersion은 제한되어 있으며 Windows Installer는이를 레지스트리의 제품 Uninstall 키의 DisplayVersion 필드에 복사합니다. 그러나 DisplayVersion은 자유 형식 문자열입니다. 따라서 Windows Installer에서 해당 항목을 숨김으로 표시하고 (ARPSYSTEMCOMPONENT 참조) 사용자 지정 동작으로 내 자신을 만듭니다. 설치의 설치, 제거, 업그레이드, 롤백 단계를 처리하기 위해 사용자 지정 작업을주의해야합니다. –

+1

규칙을 무시하는 것만 큼? 오히려 안정적인 설치 프로그램을 갖고 싶습니다. –

+0

ARP의 DisplayVersion에 대한 규칙은 없습니다. 장점은 "제품 버전"이 게시자, 사용자 및 지원 직원에게 의미가 있다는 것입니다. MSI 파일의 버전은 DLL의 버전과 유사합니다. UX 공간에 유출되면 안됩니다. –