2008-09-19 6 views
1

VS2003을 사용하여 설치를 구축 중입니다.이 설치에는 Excel 통합 문서와 두 개의 Access 데이터베이스가 있습니다. 사용자의 컴퓨터에있는 기존 데이터베이스의 작성/수정 날짜에 상관없이 Access 파일을 강제로로드해야합니다. 현재 ORCA를 사용하여 두 파일의 버전 번호를 지정하고 있지만 좀 더 간단하고 세련된 솔루션을 찾으려고합니다. (.msi 파일을 직접 편집하는 것은 "모범 사례"로 간주됩니다.).msi의 Access 파일에 버전 번호를 추가하는 방법

다음에 사용되는 Access를 사용하여 데이터베이스에 버전 번호를 추가하는 방법은 설치?

날이 작업을 수행 할 수있는 더 좋은 방법이 있나요?

답변

2

@LanceSc

나는 참고 MsiFileHash 테이블이 여기에 도움이 될 것입니다 생각하지 않습니다. Aaron Stebner의 excellent post을 참조하십시오. 클라이언트 컴퓨터에서 Access 데이터베이스의 마지막 수정 날짜는 생성 날짜와 다를 수 있습니다. Windows Installer는 설치 후 파일이 변경되었다고 올바르게 가정하고 파일을 바꾸지 않습니다.

이 문제를 해결할 올바른 방법은 파일 테이블에 버전 필드를 설정하는 것입니다.

불행히도 Visual Studio의 설치 프로젝트는 매우 제한적입니다. 파일 테이블 (SQL 사용)의 레코드를 수정하는 간단한 VBS 스크립트를 만들 수 있지만 대신 WiX, InstallShield 또는 Wise 같은 대체 설치 제작 도구를 사용하는 것이 좋습니다. 제 의견으로는 WiX가 최고입니다.

0

을 제대로하지 않는 것처럼 소리 때문에 REINSTALLMODE 속성을 변경해 보셨습니까?

IIRC의 기본값 인 'omus'는 'o'입니다. 이전 버전을 사용하는 경우에만 설치할 수 있습니다. 이것을 'o'에서 'e'로 변경해보십시오. 누락 된 이전 버전과 동일하게 버전이있는 파일을 덮어 씁니다.

수동으로 버전을 추가하는 것은 잘못된 방법 이었지만 설치하기 위해 버전 번호를 수동으로 올려야 할 필요는 없습니다.

0

프로젝트의 빌드 이벤트를 살펴보십시오. 빌드 이벤트 중에 파일 버전을 개정 할 수 있습니다. [저를 인용하지 마십시오.] 나는 당신이 할 수 있는지 잘 모르겠지만, 그것이 내가 먼저 조사하기 시작할 곳이 될 것입니다.

0

이러한 파일에 대해 MsiFileHash 테이블을 채워야합니다. WiFilVer.vbs를 보면 Microsoft Platform SDK의 일부로이를 수행하는 방법을 알 수 있습니다.

다른 제안은 설치를 수행하기 위해 Visual Studio 2003 대신 WiX을 보는 것입니다. Visual Studio 2003은 MSI 지원이 매우 제한되어 있으므로 유용한 작업을 수행하는 대신 많은 시간을 할애 할 수 있습니다.

관련 문제