2014-12-15 15 views
3

컴퓨터에 Firebreath 기반 플러그 인의 32 비트 및 64 비트 .dll 파일을 모두 설치하는 MSI 패키지를 만들어야합니다.컴퓨터에 32 비트 및 64 비트 리소스를 모두 설치하는 msi 패키지 만들기

내가 원하는 것은 두 리소스를 모두 설치하고 브라우저 (32 비트 또는 64 비트)에 따라 적합한 리소스를 사용하는 것입니다. 예를 들어, Windows, Chrome 64 비트 및 Firefox 32 비트가있는 64 비트 컴퓨터가있는 경우; 두 브라우저에서 내 플러그인을 사용할 수 있기를 원합니다.

이렇게하려면 Visual Studio 2008과 Wix를 사용하고 있습니다. 지금까지 32 비트 .msi로 변환되는 32 비트 .dll과 열 때문에 64 비트 .msi로 변환되지 않는 64 비트 .dll을 만들 수있었습니다. exe 버그. https://groups.google.com/forum/#!msg/firebreath-dev/HmGYEgZamUQ/35WJWfB4zegJ

앞에서 설명한 구현은 64 비트 msi가 실패하지 않은 경우 2 개의 다른 .msi 설치 관리자를 만듭니다. 내가하고 싶은 것은 두 .dll 파일 (32 비트 .dll 및 64 비트 .dll)을 생성 한 다음 둘 다 등록하는 하나의 .msi 설치 프로그램에 패키지하는 것입니다.

가능한가요? 그렇다면 가장 좋은 방법은 무엇일까요?

+0

Christopher가 맞습니다. 가장 안전한 방법은 부트 스트 래퍼로 포장 된 두 개의 MSI 패키지를 만드는 것입니다. 대부분의 설치 저작 도구는이를 수행하는 데 도움을 줄 수 있습니다. –

답변

7

Windows Installer는이 기능을 지원하지 않습니다. 엄밀히 말하면 .MSI 패키지는 플랫폼에 따라 다릅니다. "하이브리드"설치 프로그램을 만드는 몇 가지 해킹과 트릭이 있습니다. 이것은 64 비트 레지스트리 키를 생성하기 위해 MSI 검사를 64 비트 위치에 설치하고 사용자 지정 작업에 파일을 설치하도록하는 32 비트 MSI를 생성합니다.

책 대답은 32 비트 및 64 비트 MSI를 작성한 다음 프로그램 및 기능으로 등록한 부트 스트 래퍼에 캡슐화하고 2 개의 MSI를 커버 아래에 설치하는 것입니다. WiX에서는 Burn을 사용하여 2 개의 설치 관리자를 함께 연결할 수 있습니다.

+0

예. 기본적으로 당신이 할 수있는 최선은 .exe 설치 프로그램을 빌드하는 것입니다. (NSIS는 NSIS에 있습니다) 플랫폼에 따라 조건 적으로 두 가지 또는 단지 32 비트를 설치합니다. – taxilian

+1

WiX Burn이 기본적으로 MSI를 이해하기 때문에 NSIS 나 다른 것을 쓰지 않을 것입니다. 자동으로 많은 문제를 처리합니다. 설치, 제거, 업그레이드, 캐싱 등. –

+0

WiX 화상을 사용하지 않았습니다. 아마 요즘 체크 아웃해야합니다 – taxilian

0

내가 그런 시나리오에서 할 것은 주로 다른 설치 프로그램을 만들고 부트 스트랩하는 대신 64 비트 설치 프로그램에 집중하는 것입니다.
다음과 같은 내 접근 방식입니다, 제발 내가 잘못 복용 오전 경우.

브라우저 플러그인을 설치하고 플랫폼에 따라 브라우저를 사용하는 설치 프로그램이 필요합니다. 그런 경우
> OS가 32 비트이므로 64 비트 broswer의 기회가 없으므로 설치 프로그램을 32 비트 broswer 설정에 간단하게 유지하십시오.
2> 이제 os는 64 비트입니다. 기회는 32/64 비트 브라우저이므로 32 비트 및 64 비트 용으로 다른 구성 요소를 사용하여 설치 프로그램을 만들면 32 비트 구성 요소는 32 비트 broswer와 64 비트 구성 요소로 설정됩니다. 나머지는 32 비트 브라우저로 OS에 남겨 둡니다. 항상 32 비트 Firebreath 플러그인을 사용합니다.

저는 Regsvr은 사용 가능한 모든 브라우저에 플러그인을 설치 하겠지만, 설치 프로그램에서는 bad practice으로 간주됩니다.
설치 프로그램을 만드는 동안 개발자가주의해야 할 브라우저 플러그인을 설치하는 동안 많은 것들이 있기 때문에 이것은 완전한 증거가 아닙니다.

+0

제안을 구현하는 방법을 안내하기 위해 살펴볼 수있는 예가 있습니까? – KoKa

+0

브라우저 플러그인을 추가하는 코드를 공유 할 수 있습니까? 이전에 작성한 것처럼 64 비트 설치 프로그램을 작성하고 32 비트 브라우저에서 동일한 작업을 수행하는 추가 구성 요소를 추가하십시오. 내가 의미하는 바는 64 비트 시스템에 드라이버를 설치해야한다는 것입니다. 기본적으로 SYSWOW64 또는 SYSTEM32에서 드라이버 비트를 사용하여 드라이버를 사용하는 동안 사용합니다. 그래서 설치하는 동안 한 번에 32 비트와 64 비트 드라이버를 설치합니다. (64 비트 만 필요합니다.) 64 비트 설치 프로그램에 32 비트 브라우저 파일과 64 비트 브라우저 파일을 추가하면 브라우저가 자동으로 비트를 따릅니다. – Nimish

+0

64 비트 브라우저 플러그인 바이너리로 64 비트 설치 프로그램을 만드는 것조차 브라우저가 64 비트 os.http에서 32 비트 일 수 있으므로 언젠가는 작동하지 않을 수 있습니다 .http : //www.codeproject.com/Articles/44191/Drivers-Installation-With-WiX 비슷한 예가있다. – Nimish