AD를 통해 더 쉽게 배포할 수 있도록 MSI 내부에 Inno Setup 설치 프로그램을 래핑하는 것이 가능하고 합리적입니까?

StackOverflow https://stackoverflow.com/questions/71203

  •  09-06-2019
  •  | 
  •  

문제

우리 설치 프로그램은 Inno Setup으로 작성되었으며 실제로 매우 만족합니다.그러나 일부 고객은 Active Directory를 통해 더 쉽게 배포할 수 있는 MSI 설치 프로그램을 계속 요구하고 있습니다.우리는 이미 Inno Setup의 기능을 확장하여 설치 프로그램이 자동 및 무인 설치를 잘 처리할 수 있도록 노력했습니다. /LOADINF-우리 자신의 옵션을 갖춘 메커니즘.

MSI를 요청하는 고객을 만족시키기 위해 저는 WIX를 사용하여 생성된 MSI 내에 일반 설치 프로그램을 간단히 포함하는 방법을 생각하고 있었습니다.질문은 ~이야:현재 설치 프로그램이 제공하는 높은 구성 가능성을 그런 식으로 유지할 수 있습니까?무인/대량 설치 시나리오에서 외부 MSI를 통해 Inno Setup 설치 프로그램의 옵션을 노출하려면 어떻게 해야 합니까?

저는 아직 MSI 제작과 WIX에 대해 실제로 파고들지 못했습니다.지금 나는 자신이 무슨 말을 하는지 아는 사람들이 이것이 애초에 우리의 에너지를 투자하는 실현 가능하고 합리적인 접근 방식이라고 생각하는지에만 관심이 있습니다.

편집 :] 처음에는 임시 추출 및 실행 접근법으로 할 수 있다고 생각했습니다.MSI는 단순히 Inno 설치 프로그램을 대상 PC에 전달하고 그곳에서 실행하는 역할을 합니다. /VERYSILENT-방법.하지만 MSI를 요청하는 고객도 중앙 위치에서 설치를 제거하거나 수정할 수 있기를 원할 것 같은데, 이 시나리오에서는 불가능할 것 같습니다. 그렇죠?

추신.:여기에는 MSI용 WISE의 오래된 사본도 있지만 실제로 그 경험이 우리가 처음부터 Inno를 사용하기 시작한 이유였습니다.

도움이 되었습니까?

해결책

아니요, 고객이 '암시적으로' 요구하는 기능을 계속 유지하면서 그렇게 할 수 있는 방법은 없습니다.MSI에서 수행할 수 있는 유일한 '래핑'은 설치 시 압축을 풀고 압축을 푼 임시 위치에서 InnoSetup 설치 프로그램을 시작하는 것입니다.MSI는 근본적으로 다른 작업 방식입니다.InnoSetup(& NSIS 및 대부분의 기타 설치 프로그램)은 코드 중심 접근 방식을 취합니다.데이터를 설치하는 '단계'를 '프로그래밍'합니다.MSI는 데이터베이스이며 '데이터 중심' 접근 방식을 취합니다.어떤 파일을 설치해야 하는지 지정하면 MSI '런타임'이 나머지 작업을 수행합니다.이를 통해 버전 관리 및 내용의 정확한 제어가 가능해집니다.

간단히 말해서, 고객이 원하는 것(예: MSI가 AD와 함께 제공하는 배포 용이성)을 제공하려면 '적절한' MSI가 필요합니다.행운을 빕니다. IMHO는 큰 고통입니다.하지만 MSI와 WiX를 마스터하면 좋은 결과를 얻을 수 있습니다.

다른 팁

나는이 문제를 여러 번 겪었습니다.따라서 저는 이 문제에 접근하는 표준 방법을 만들었고 그 결과 단계를 안내하는 마법사가 탄생했습니다.이 도구는 다음을 지원합니다.

  1. exe를 MSI로 래핑합니다.
  2. 제거를 지원합니다.
  3. "프로그램 추가/제거"에는 하나의 프로그램만 표시됩니다.
  4. MSIEXEC.EXE를 사용하여 MSI 패키지를 실행할 때 /SILENT와 같은 명령줄 인수를 포함된 설정에 전달할 수 있습니다.

당신은 그것을 얻을 수 있습니다 http://www.exemsi.com (기본 버전은 무료입니다)

내 문의 양식을 사용하여 어떻게 생각하는지 알려주세요 :-)

귀하의 수정 사항에 대한 응답으로:예, MSI 데이터베이스는 설치 프로그램의 내용에 대해 아무것도 모르기 때문에 설명하는 내용은 업그레이드(삭제/재설치 제외) 및 원격 구성을 방지합니다.

하지만 많은 설치 프로그램 패키지는 다음과 같은 방식으로 MSI '지원'을 시작했습니다.예를 들어 InstallShield가 그랬습니다.그것이 내가 그것들을 버린 주된 이유입니다. 왜냐하면 그러한 방식으로 만들어진 설치 프로그램은 MSI 목적에 쓸모가 없기 때문입니다.InstallShield의 최신 버전이 더 나은지 모르겠습니다. 마지막으로 확인한 것은 5년 전이었습니다.

MSI에서 INNOSETUPper를 자동으로 설치하는 래퍼 키트를 만드는 것은 매우 쉽습니다.기본 기능(설치/제거)의 경우 이것으로 충분합니다.대부분의 설치 프로그램은 어쨌든 복구를 구현하지 않습니다.

  1. INNO 설정을 위한 Silent.inf 스크립트 생성(선택 사항)

  2. 호출하는 install.bat를 생성합니다.

    myinnosetup.exe /silent /NOCANCEL /norestart /Components="xxx"

    /verysilent를 사용할 수 있습니다
    /LOADINF="silent.inf"를 사용하면 Silent.inf에서 설정을 로드할 수 있습니다.

  3. install.bat를 호출하는 MSI 설정 파일 생성(필요한 경우 매개변수 사용)

  4. 4개 파일을 모두 고객에게 전달하면 SMS 또는 ActiveDirectory를 사용하여 Inno 설정 프로그램을 배포할 수 있으며 모두가 만족합니다 :)

MSI로 래핑된 Inno 설정을 사용하여 원하는 모든 작업을 수행하는 것이 가능하다고 주장하고 싶지만 이는 결코 사소한 일이 아니며 WiX를 사용하면 이 특정 작업이 더 어려워질 수 있습니다.한마디로 별로 추천하고 싶지 않습니다.

하지만 정말로 원한다면...

MSI 파일은 추가 스크립트 지침이 포함된 단순한 데이터베이스 파일이며 실제로 설치하려는 항목이 포함된 .cab 파일이 포함되어 있는 경우가 많습니다.

Wise를 사용하는 경우 Windows Installer 조건을 추가하고 이벤트를 더 세밀하게 제어(설치, 복구, 수정, 제거)할 수 있는 기본 스크립트를 생성하여 Inno Setup 설치 스크립트에서 동등한 작업을 호출합니다. 임시 폴더에 설치하고 보관해야 합니다.

설치 기술을 혼합하는 것은 의미가 없습니다.

혼합하는 경우 제거 항목과 관련된 첫 번째 문제가 발생합니다.변경하지 않으면 프로그램 제거 프로그램 2개가 제공됩니다.

"entwickler 매거진"에 Windows 설치 프로그램으로 시작하는 기사가 있습니다.

  • Entwickler Magazine(Ausgabe:03.09/15.04.2009) 아티켈:MSI-Pakete MIT 오픈 소스 소프트웨어 Erzeugen Teil 4
  • Entwickler Magazine(Ausgabe:02.09/12.02.2009) 아티켈:MSI-Pakete MIT 오픈 소스 소프트웨어 Erzeugen Teil 3
  • Entwickler Magazine(Ausgabe:01.09/10.12.2008) 아티켈:MSI-Pakete MIT 오픈 소스 소프트웨어 Erzeugen Teil 2
  • Entwickler Magazine(Ausgabe:06.08/15.10.2008) 아티켈:MSI 패키지와 오픈 소스 소프트웨어 지원

http://entwickler-magazin.de/

Windows 설치 프로그램은 설치를 위한 유일한 기술이어야 합니다.미래에 대비할 수 있고 안정적입니다!

MSI 패키지에 Inno 설정을 래핑하는 것은 간단한 작업이 아닙니다.그러나 가능합니다.이 작업을 수행하는 데 사용할 수 있는 무료 도구가 많이 있습니다.제거 및 업그레이드도 지원하는 제품을 선택해야 합니다.

업그레이드 및 제거를 지원하는 무료 도구는 하나만 찾았습니다.확인해 보세요 http://www.exemsi.com/inno-setup-and-msi

그렇게 하는 것은 ZIP 파일을 전달하고 설치가 끝날 때 unzip을 호출하는 것과 거의 동일합니다.

이러한 접근 방식을 사용하면 AD와 Windows Installer는 적절한 MSI 설치를 처리하는 것처럼 속일 수 있지만, 그렇지 않기 때문에 처음에는 역효과를 낳을 수 있습니다.

이쪽으로 가지 마세요.

어쨌든 WiX는 InnoSetup보다 우수한 도구 세트이므로 학습 및 이식에 소요되는 시간은 더 나은 협업 지원으로 보상받을 것입니다.

마지막 설명은 실현 가능하고 실행 가능하지만 MSI로 이동하는 것이 이 문제를 처리하는 가장 좋은 방법입니다.

거의 모든 대규모 조직에서는 MSI만 규정하는데, 그 이유는 다양합니다.

1) 먼저 배포의 용이성 2) 일부에게는 더 중요한 응용 프로그램 사교성 3) 자기 치유

Windows Installer를 구현하지 않는 inno 설정 및 기타 도구는 Windows Installer와 동일한 방식으로 응용 프로그램 친화성을 제공할 수 없습니다.

Inno 설정은 단일 애플리케이션을 배포하도록 설계된 소프트웨어라는 것을 이해해야 합니다.

Windows Installer는 사교성, 사용자 가장, 사용자 권한 상승, 자가 치유, 사용자 프로필 수정을 처리하는 전체 프레임워크입니다.

둘 다 기능면에서 원격으로 가깝지도 않습니다. 내 생각에 inno 설정은 Windows 설치 프로그램과 비교할 때 완전히 완전히 벗어났습니다.

성공적인 설치 프로그램을 만들 수 있습니까?예 사용하기 쉽습니까?예, 좋은 싱글 설치자를 생성합니까?예, 기업에 가장 적합한 선택입니까?아니요

Microsoft "SMS Installer"가 개발한 최초의 도구는 10년 전 innosetup이었습니다.설치 세계에서는 상황이 급격하게 변했고 inno 설정은 그 변화의 속도를 따라잡지 못했습니다.

LOADINF가 허용하는 것처럼 Silent.inf(안정된 inno 설정 설정 값이 아님)에 사용자 지정 값을 입력해야 합니다.

참고: makemsi를 사용하는 경우 $WrapInstall을 사용할 수 있으므로 bat를 포함할 필요가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top