2011-04-27 2 views
3

네트워크 드라이브에 내부 MSI가 설치되어 있으며 네트워크상의 모든 사용자가 MSI를 컴퓨터에 설치할 수 있도록 로그인 스크립트를 작성하고 싶습니다. , 또는 MSI가 업데이트 될 때마다 자동으로 다시 설치되도록하십시오 (종종 발생합니다).msiexec을 설치하고 필요에 따라 다시 설치하는 방법

msiexec.exe /i REINSTALL=ALL을 사용하는 경우 해당 컴퓨터에 MSI가 아직 설치되어 있지 않으면 아무 작업도 수행하지 않습니다. REINSTALL=ALL을 삭제하면 새로 설치되지만 업데이트/재설치는 수행되지 않습니다.

패키지를 아직 설치하지 않은 경우 새로 설치하기 위해 선택해야하는 매개 변수는 패키지가 이미 설치된 경우 완전히 다시 설치해야합니까?

먼저 msiexec /i을 실행 한 다음 다시 설치하면 문제가 발생할 수 있지만 가능한 경우이를 피하고 싶습니다.

편집 이유 : /famus은 개발자 기계이며 누군가가 수동으로 레지스트리를 업데이트하거나 다른 DLL 집합을 등록 할 수 있습니다. 스크립트의 의도는 MSI가 변경되지 않은 경우에도 스크립트를 실행하여 "공식적인"환경으로 쉽게 되돌릴 수 있다는 것입니다. 어떤 시도에 대한

답변

2

마지막으로 msiexec/famus를 실행하는 배치 파일로 해결했으며 종료 코드가 1605이면 msiexec/i가 실행됩니다.

3

:
msiexec /i <path to msi> ADDLOCAL=<top level feature name>

당신은 Orca.exe와에서 패키지를 열고 기능 테이블을 보면 최상위 기능 (들)을 얻을 수 있습니다.

1

한 지점에서 마이너 업그레이드를 지원하는 일반적인 방법은 패키지에 REINSTALL=ALL를 제작, 그러나 당신의 제품이 NOT Installedtype 51 (set property) custom actionREINSTALL={}이 속성을 취소 추가했다. 이것이 정확히 당신이 찾고있는 것이 확실하지 않지만 시작일 수 있습니다. 이 패키지를 만들지 않았다면 변환을 사용하여 속성과 삭제 작업을 모두 추가 할 수 있습니다. msiexec.exe /i [...] TRANSFORMS="[...]\reinstall.mst"

1

사소한 업그레이드 대신 주요 업그레이드를 사용합니다. 주요 업그레이드의 경우 명령 줄은 항상 동일하므로 업그레이드 또는 새로 설치 여부에 따라 다른 명령 줄을 사용할 필요가 없습니다.

주요 업그레이드는 실제로 Windows Installer에게 "업그레이드"수행 방법을 알려주는 업그레이드 테이블에 지정된 논리로 연결된 별도의 설정입니다. 업그레이드는 전혀 업그레이드가 아니라 기존 제품을 제거하고 새 제품을 설치하는 것입니다.

업그레이드 표에는 학습 곡선이 있지만 때때로 그리스어로되어 있지만 업그레이드 동작을 지정하는 데 많은 유연성을 제공합니다. 일부 샘플 :

  • 당신은 이전 제품을 제거하고 설치할 수있는 새로운
  • 당신은 상단에 이전 제품의 설치를 허용 할 수있는 새로운 하나
  • 당신은 새가 이전에 설치 다운 그레이드 할 수 있습니다 하나는 실행됩니다 (예를 들어, 로그인 스크립트에 포함 된 버전이 대상 시스템에있는 버전인지 확인).

일들을 혼동시킬 수있는 주요 업그레이드에는 몇 가지 추가 과제가 있습니다. 특히 주요 업그레이드를 통해 이전 버전을 제거하기 전에 새 버전을 설치할 수 있습니다! 이 시나리오에서는 구성 요소 참조가 올바르게 완료된 오류없는 설정이 필요합니다.그러나 가장 일반적인 방법은 이전 버전을 완전히 제거한 다음 나중에 새 버전을 설치하는 것입니다. 이 접근법은 더 관대하며 일반적으로 설정에서 참조하는 구성 요소가 엉망인 경우에도 올바르게 작동합니다.

개인적으로 공개적으로 출시 된 소프트웨어의 사소한 개조를 제외한 사소한 업그레이드는 절대로 사용하지 않습니다. 이러한 업그레이드는 오류가 발생하기 쉽고 배포가 지루하며 디버깅 시간이 오래 걸리며 일반적으로 불필요한 복잡성이 따른다는 것을 알게되었습니다. 이전 패키지의 제거 논리에서 오류로 인해 주요 업그레이드가 실패한 경우에도 사용합니다. 즉, 핫픽스를 설치하기 전에 잘못 설치해야 핫픽스를 제대로 설치할 수 있습니다.

+0

예 우리는 내부적으로 "공식적인"용도로 주요 업그레이드를 사용하고 있습니다. 방금 MSI를 업그레이드하지 않아도 작업을 수행 할 수 있도록 컴퓨터를 공식 설정으로 되돌리려면 repair/famus가 필요하다는 점에 대한 편집을 추가했습니다. – Ying

관련 문제