2011-06-10 3 views
6

.exe 파일이 더 최근 버전 일 때마다 .exe 파일 (즉, 기본 출력)을 항상 대체하도록 MSI 설치를 수행하는 쉽고 간편한 방법이 있습니까?매번 MSI 설치 프로그램이 .exe 파일을 업데이트하도록하는 방법이 있습니까?

이것은 단지 기본적인 상식에 불과합니다. 어디에서 검색하든 항상 메이저 및 마이너 버전 및 패치에 대한 복잡한 토론이 있습니다. 설치하는 동안 파일이 바뀌는 지 확인하는 간단한 방법이 있어야합니다. 그렇지 않으면 전체 설치 과정에서 실제로 수행하는 MSI 파일은 무엇입니까? 마치 아무 것도 실제로 대체/업데이트/업그레이드되지 않는 가짜 설치와 같습니다.

무엇이 누락 되었습니까?

답변

3

.exe의 버전 번호를 증가 시키면 모든 것이 "상식"방식으로 작동합니다. MSI는 파일의 타임 스탬프와 같이 가단성이있는 측면에 대한 버전 정보를 신뢰합니다.

+0

나는 당신이 말하는 것을보고 그것이 의미가 있습니다. 고맙습니다. 따라서 MSI를 생성 할 때마다 수동으로 버전을 inrement해야합니다. – Chris

+0

일반적으로 전체 빌드 시스템의 일부입니다. 예를 들어, 빌드는 버전 번호를 증가시키고이를 포함 파일에 넣으며 모든 구성 요소는 버전 번호를 가져옵니다. –

+1

전반적인 아이디어는 시스템 dll 파일이 이전 파일로 덮어 쓰여진 이전 문제에 대한 MSI를 방지하는 것입니다 버전. 따라서 새로운 개념은 파일 버전이 왕이며 바이너리를 위해 다른 것을 오버라이드한다는 것입니다. 이것은 버전 번호를 증가 시키거나 적어도 감소시키지 않는 한 모두 잘 작동합니다. –

0

File table에서 버전 열을 "65535.65535.65535.65535"로 설정할 수 있습니다. 이 방법은 파일이 실제로 어떤 버전이든 관계없이 항상 덮어 씁니다.

Visual Studio에서는 지원되지 않지만 Orca으로 MSI를 편집 할 수 있습니다.

+0

이 해결 방법은 허용되는 동안 패치 및 기타 유지 관리 중에 원본을 묻는 메시지를 표시 할 수 있습니다. 이는 파일의 기록 된 버전과 파일의 실제 버전이 일치하지 않기 때문입니다. –

0

프로젝트의 어셈블리 버전을 1.0으로 설정하면 자동으로 새 .exe 버전이 생성됩니다. 안타깝게도 자동으로 증가시키지 않는 방법으로 설정 버전을 늘려야합니다.

관련 문제