visual-studio-2008 vs2008sp1korx1512979 VS2008 x86 설치 프로그램을 x64에 x64 어셈블리를 설치하려면 어떻게합니까?



vs2008sp1korx1512979 (3)

1 년 전에 이것을 들여다 보았을 때 나는 가능하지 않다는 결론에 도달했습니다. Microsoft에서 제공하는 많은 MSI 파일이 x86 및 x64 버전으로 나뉘어져 있으며, 가능하다면 단일 파일 만 제공 할 것입니다.

내 .NET 제품에 대한 설치 프로그램을 만들려면 VS2008 설치 관리자 (사용자 지정 Orca 동작 포함)를 사용하고 있습니다.

방금 최근에 내가 사용하고있는 제 3 자 어셈블리 중 하나가 x86 고유 (일부 원시 코드 포함)라는 사실을 알았습니다. 따라서 x64 고객은 시작시 어셈블리에 대한 오류가 해당 플랫폼에 적합하지 않아 충돌이 발생했습니다.

나는이 고객에게 x64 버전의이 써드 파티 어셈블리 사본을 보냈고, 기존의 x86 하나를 복사 해달라고 말했다. 그것은 일했다, 단했다! 이제 설치 프로그램이 나를 위해이 작업을 수행해야합니다.

이것은 실제로 중요하지 않습니다. (. 이상적으로는 설치 프로그램 (두 플랫폼 모두에서 실행될 수있는 x86이기 때문에)을 사용하여이 타사 어셈블리의 x86 및 x64 버전을 모두 포함시키고 적절한 버전을 설치해야합니다. 즉, 사용자의 삶을 편하게하는 단일 설치 프로그램이 필요합니다.

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

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


필자는 두 가지 기능을 사용하여 두 세트의 파일을 선택적으로 포함함으로써 성공을 거두었습니다 (개별 구성 요소에 개별 파일 식별자 포함!).

설치는 x32 및 x64에 모두 설치하려면 x32로 표시되어야합니다. 그것은 항상 x32 디렉토리에 설치되며 크게 WOW에서 실행되는 32 비트 응용 프로그램으로 간주됩니다.

VersionNT64 등록 정보를 사용하여 Windows 64 설치가 있는지 판별하고 필요한 파일을 조건부로 설치할 수 있습니다.

이 기능을 VS2008 설치 프로젝트에서 얼마나 많이 사용할 수 있는지 잘 모르겠습니다. 다른 상업 도구를 사용하여 설치 프로그램을 이런 식으로 설정하고 있습니다. Orca를 상용 도구로 사용할 수는 없지만 Orca를 사용하면 훨씬 더 어렵습니다.


내가 올바르게 이해한다면 x64 플랫폼에 설치하는 경우 x86과 다른 파일 (이름이 같은 파일)에 설치하는 경우 하나의 파일 사본을 만들고 싶습니다.

우선 x64 MSI는 x86 플랫폼에서 실행되지 않고 x64 MSI는 x64 플랫폼에서 WOW64를 사용하여 설치되므로 2 가지 플랫폼에 대해 하나의 MSI를 작성할 수 없습니다.

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

가장 쉬운 방법은 빌트인 VS2008 MSI 생성기 대신 WIX (V3)를 사용하는 것입니다. WIX를 사용하면 고객의 컴퓨터에 설치되는 내용과 플랫폼에 따라 다른 설치 프로그램을 생성 할 수있는 기능 및 전체 MSBuild 지원 기능을 추가 보너스로 제공 할 수 있습니다. 자세한 내용은 http://wix.sourceforge.net 을 참조 하십시오 .

혹시 WIX가 아직 베타 상태인지 궁금하다면, 생성 된 MSI 파일은 완벽하게 정상입니다. 아직 버그가 없었습니다. (그리고 나는 생계를위한 설치 프로젝트를 개발한다.)

마지막으로 x86 설치 프로그램이 x64 플랫폼에서 실행중인 경우 VersionNT64 속성을 사용하여 확인할 수 있습니다. 이 속성이 있으면 x64를 실행하고 그렇지 않으면 x86을 실행 중입니다.

희망이 도움이됩니다.





64bit