우리는 다음을 포함하는 많은 제품군을 보유하고 있습니다.VS 설치 프로젝트를 사용하여 32 비트 또는 64 비트 Windows에서 "Any CPU"코드를 올바르게 설치하려면 어떻게합니까?
- VB6로 작성된 데스크톱 응용 프로그램.
- .NET으로 작성된 데스크톱 응용 프로그램.
- .NET으로 작성된 Windows 서비스.
- .NET으로 작성된 ASP.NET 웹 앱.
- .NET으로 작성된 ASMX 및 WCF 서비스.
모든 .NET 코드는 .NET 3.5 및 "Any CPU"를 대상으로 VS2008로 작성되었습니다. 특정 프로세서를 대상으로 할 수는 있지만 종속성 트리에서 문제가 더 심해지므로 선호하지는 않습니다. 나중에 옵션이 될지라도, 우리는 아직 .NET 4.0으로 옮길만한 위치에 있지 않습니다.
모든 응용 프로그램은 몇 가지 중요한 레지스트리 키를 공유합니다. 우리는 .NET 코드가 항상 32 비트 레지스트리보기를 보도록함으로써 레지스트리 리디렉션 문제를 해결했습니다.
일부 .NET 코드는 COM interop을 통해 VB6 DLL과 통신하지만 이는 매우 제한적이며이 종속성을 쉽게 제거 할 수 있습니다 (주석 달기, .NET에서 나중에 다시 작성하십시오).
모든 웹 응용 프로그램과 서비스는 IIS에서 호스팅되도록 설계되었습니다. 5.1 이후의 모든 버전을 지원해야합니다.
빌드 VM은 현재 Windows XP (32 비트)를 실행 중입니다. 필요한 경우 새로 만들 수 있습니다.
나의 임무는 모든 것이 64 비트 Windows (모든 버전)에서 문제없이 실행되는지 확인하는 것입니다. 현재 .NET 설치 프로젝트에 문제가 있습니다.이 프로젝트는 모두 VS2008 설치 프로젝트 템플릿을 사용하여 작성됩니다.
소스 코드가 모든 CPU이지만 설치 프로젝트에는이 기능이 없습니다. 하나의 프로세서에 TargetPlatform
속성을 설정해야합니다. 이것은별로 유용하지 않습니다. 32 비트 O/S에서는 32 비트로, 64 비트 O/S에서는 64 비트로 설치되는 setup.exe
을 사용할 수 있습니까? 앱을 설치하는 최종 사용자 인 경우 어떤 설치 프로그램을 실행할 것인지 알 수 없습니다.