VS2008 x86 설치 프로그램이 x64에 x64 어셈블리를 설치하도록 하려면 어떻게 해야 합니까?

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

문제

저는 VS2008 설치 프로그램(및 사용자 정의 Orca 작업)을 사용하여 내 .NET 제품용 설치 프로그램을 만들고 있습니다.

최근에 제가 사용하고 있던 타사 어셈블리 중 하나가 x86 전용이라는 사실을 알게 되었습니다(일부 네이티브 코드가 포함되어 있기 때문입니다).따라서 x64 고객은 시작 시 해당 플랫폼에 적합하지 않은 어셈블리에 대한 오류로 인해 충돌이 발생했습니다.

나는 그러한 고객에게 이 타사 어셈블리의 x64 버전 사본을 보내고 기존 x86 버전 위에 복사하라고 말했습니다.효과가 있었어, 얘야!이제 설치 프로그램이 이 작업을 수행하도록 하면 됩니다.

이것은 실제로 중요하지 않은 것처럼 보입니다 :(.이상적으로는 설치 프로그램(두 플랫폼 모두에서 실행될 수 있으므로 x86)이 이 타사 어셈블리의 x86 및 x64 버전을 모두 포함하고 적절한 버전을 설치하기를 원합니다.즉, 사용자의 삶을 편하게 해주는 단일 설치 프로그램을 원합니다.

나는 MSI 조건문과 그 모든 것을 사용하여 이 문제를 해결했다고 생각했습니다.하지만 분명히 아닌 것 같습니다 ..."x86"또는 "x64"를 지정하지 않으면 vs2008 설정 프로젝트는 컴파일되지 않습니다. X86을 지정하면 X64 어셈블리를 포함 할 수 없다는 컴파일 오류가 발생합니다.x64를 지정하면 x86 컴퓨터에서 결과를 실행할 수 없습니다.젠장!

누군가가 이전에 이런 문제를 겪었음에 틀림없습니다.불행히도 Google은 도움이 되지 않으므로 StackOverflow를 사용합니다!

도움이 되었습니까?

해결책

제가 올바르게 이해했다면 x86에 설치하는 경우 파일 하나를 복사하고 x64 플랫폼에 설치하는 경우 다른 파일(동일한 이름)을 복사하고 싶을 것입니다.

우선, x64 MSI는 x86 플랫폼에서 실행되지 않고 x86 MSI는 x64 플랫폼에서 WOW64를 사용하여 설치되기 때문에 서로 다른 두 플랫폼에 대해 하나의 MSI를 만들 수 없습니다.

반면에 두 가지 다른 버전의 파일이 포함된 하나의 x86 MSI를 생성하고 설치 중에 적절한 파일을 선택적으로 복사할 수 있습니다.

가장 쉬운 방법은 내장된 VS2008 MSI 생성기 대신 WIX(V3)를 사용하는 것입니다.WIX는 고객의 컴퓨터에 무엇이 설치되고 어디에 설치되는지에 대한 훨씬 더 강력한 제어 기능을 제공하며, 다양한 플랫폼에 대한 다양한 설치 프로그램을 생성하는 기능과 추가 보너스로 전체 MSBuild 지원을 제공합니다.(보다 http://wix.sourceforge.net 더 많은 정보를 위해서.)

WIX가 아직 베타 버전인지 궁금하신 경우 생성된 MSI 파일은 완벽하게 정상이며 아직 버그가 발생한 적이 없습니다.(그리고 나는 생계를 위한 설정 프로젝트를 개발합니다.)

마지막으로 x86 설치 프로그램이 x64 플랫폼에서 실행되고 있는지 VersionNT64 속성을 통해 확인할 수 있습니다.해당 속성이 있으면 x64를 실행 중인 것이고, 그렇지 않으면 x86에서 실행 중인 것입니다.

도움이 되었기를 바랍니다.

다른 팁

1년 전 이 문제를 조사했을 때 불가능하다는 결론에 도달했습니다.Microsoft가 제공하는 많은 MSI 파일이 별도의 x86 및 x64 버전으로 제공된다는 점은 주목할 가치가 있으며 아마도 가능하다면 단일 파일만 제공할 것입니다.

두 가지 기능을 사용하여 두 개의 파일 세트를 선택적으로 포함함으로써 어느 정도 성공했습니다(물론 개별화된 파일 식별자를 사용하여 별도의 구성 요소에!).

x32와 x64 모두에 설치하려면 설치를 x32로 표시해야 합니다.항상 x32 디렉토리에 설치되며 주로 WOW에서 실행되는 32비트 응용 프로그램으로 처리됩니다.

VersionNT64 속성을 사용하면 Windows 64 설치가 있는지 확인하고 필요한 파일을 조건부로 설치할 수 있습니다.

VS2008 설치 프로젝트에서 이 기능 중 얼마나 많은 기능을 사용할 수 있는지 잘 모르겠습니다. 다른 상용 도구를 사용하여 이런 방식으로 설치 프로그램을 설정하고 있습니다.물론 Orca를 사용하여 이를 수행할 수도 있지만 상용 도구를 사용하여 작업하는 것은 쉽지 않았으며 Orca는 훨씬 더 어렵습니다.

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