visual-studio-2008 - visual - vs2008sp1korx1512979




VS2008 x86 설치 프로그램을 x64에 x64 어셈블리를 설치하려면 어떻게합니까? (2)

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를 사용하면 훨씬 더 어렵습니다.





64bit