2009-11-13 1 views
6

사용자가 단일 PC에 내 응용 프로그램의 여러 복사본을 설치할 수있게하고 싶습니다. 하나는 테스트 용이고 다른 하나는 프로덕션 시스템 용입니다. 설치는 Visual   Studio   2005에 직접 작성된 MSI 파일입니다.이 방법을 사용할 수 있습니까?사용자가 MSI 파일의 사본을 여러 개 설치하는 것을 허용하는 방법은 무엇입니까?

다른 도구를 사용하여 설치를 생성하거나 심지어 직접 Ocra.exe을 사용하는 경우가 있습니다. 그러나 지금은 적어도 InstallShield은 문제가되지 않습니다.

+2

프로덕션 서버에서 테스트하지 마십시오. 또는 : 테스트 서버에서 실시간으로 실행하지 마십시오. –

+2

완벽한 세상에서 고객은 무엇을 할 것입니다. 그러나 고객이 작고 관리해야하는 서버의 수를 최소화하려는 경우, 동일한 서버에서 실행하는 것은 부당하지 않습니다. –

+0

아무도 여기에 심부름꾼에 대해서 말하고 있지 않습니다. 그는 자신의 PC에 두 가지 버전의 제품을 설치하는 사용자에 대해 이야기하고 있습니다. – BrainSlugs83

답변

5

slugster에서 설명한 것처럼 Property 테이블에서 ProductCode를 업데이트해야합니다. Summary Stream Information에서 패키지 코드를 변경해야합니다. MSI를 수정하는 가장 쉬운 방법은 VBScript으로 자동화를 사용하는 것입니다.

은 Windows Installer SDK 유용 포함 scripts (WiRunSQL.vbs, WiSumInf.vbs) 다음과 같이 MSI를 수정할 수 있습니다 :

패키지 코드를 변경하려면 제품 코드

cscript WiRunSQL.vbs your.msi "UPDATE Property SET Value='{AAAAAAAA-BBB1-CCCC-DDDD-EEEEEEEEEEEE}' WHERE Property='ProductCode'" 

을 변경하려면 :

cscript WiSumInf.vbs your.msi 9={AAAAAAAA-BBB2-CCCC-DDDD-EEEEEEEEEEEE} 

새 코드는 유효한 고유 GUID이어야합니다.

+0

제품 코드를 업데이트하는 것만으로는 충분하지 않은 것으로 보입니다. 이 작업을 수행하고 새 MSI를 실행하면 이전 인스턴스를 복구/제거하라는 메시지가 나타납니다. 새 인스턴스를 설치하려고합니다. 이 아이디어를 얻기 위해 내가 바꿀 필요가있는 아이디어가 있습니까? –

+0

실제로 패키지 코드도 업데이트해야합니다. 위의 업데이트 된 답변을 참조하십시오. – KMoraz

2

MSI 파일이 실행되기 전에 변환 (.mst)을 작성해야합니다. 이 변환은 제품 코드 변경을 포함하여 다양한 작업을 수행 할 수 있습니다. 이 제품 코드를 변경하면 동일한 제품의 인스턴스가 두 개 이상 설치 될 수 있습니다. Windows 설치 프로그램에서는 다른 제품으로 보입니다.

이 변환 기능은 Windows 설치 프로그램 엔진의 기본 기능입니다. 즉,이 파일을 직접 제작할 수 있습니다. InstallShield과 같은 제품을 사용하면 더 쉽게 사용할 수 있습니다. 다른 MSI 작성 제품에는 동일한 기능이 있기 때문에 쇼핑을 할 수 있으며 Windows Installer SDK에 도구가있을 가능성이 있습니다 (실제로 보지 못했지만 InstallShield 만 사용합니다).

Windows Installer Guide, Database Transforms을 사용하면 쉽게 시작할 수 있습니다.

관련 문제