설치 관리자 알아보기

이 문서에서는 기존 설치 관리자를 MSIX로 변환하기 전에 알아야 할 사항을 나열합니다. 애플리케이션을 패키징 프로세스에 대비하기 위해 많은 작업을 수행할 필요는 없지만 아래 항목이 애플리케이션에 적용되는 경우 패키징하기 전에 해결해야 합니다.

  • 애플리케이션에 서비스가 있습니다. 서비스를 사용하여 애플리케이션 변환을 지원하지만 서비스 변환에 대한 제한 사항을 염두에 두어야 합니다. 변환 후 서비스를 포함하는 MSIX를 설치하려면 관리자 권한 상승이 필요합니다. MSIX 패키징 도구 버전 1.2019.1220.0부터 서비스를 사용하여 애플리케이션을 변환할 수 있으며, Windows 10의 2020년 봄 릴리스부터 서비스를 사용하여 MSIX를 배포할 수 있습니다.

  • 설치 관리자를 다시 시작해야 합니다. 설치 관리자를 다시 시작해야 하는 경우 버전 1.2019.701.0부터 MSIX 패키징 도구에서 지원됩니다. 설치 관리자가 일반적이지 않은 종료 코드를 반환하여 다시 시작해야 함을 나타내는 경우 MSIX 패키징 도구 설정의 다시 시작 종료 코드 섹션에 추가해야 합니다.

  • .NET 애플리케이션에는 4.6.2 이전 버전의 .NET Framework가 필요합니다. .NET 애플리케이션을 패키지하는 경우 애플리케이션에서 .NET Framework 4.6.2 이상을 대상으로 하는 것이 좋습니다. 패키지된 데스크톱 애플리케이션을 설치하고 실행하는 기능은 Windows 10, 버전 1607(1주년 업데이트라고도 함)에서 처음 도입되었으며, 이 OS 버전에는 기본적으로 .NET Framework 4.6.2가 포함되어 있습니다. 이후 OS 버전에는 이후 버전의 .NET Framework가 포함됩니다. 이후 버전의 Windows 10에 포함된 .NET의 전체 버전 목록은 이 문서를 참조하세요.

    패키지된 데스크톱 애플리케이션에서 4.6.2 이전 버전의 .NET Framework를 대상으로 하는 경우에는 대부분 작동합니다. 그러나 4.6.2 이전 버전을 대상으로 하는 경우 패키지된 데스크톱 애플리케이션을 사용자에게 배포하기 전에 완전히 테스트해야 합니다.

    • 4.0 - 4.6.1: 이러한 버전의 .NET Framework를 대상으로 하는 애플리케이션은 4.6.2 이상에서 문제 없이 실행되어야 합니다. 따라서 이러한 애플리케이션은 OS에 포함된 .NET Framework 버전을 사용하여 Windows 10 버전 1607 이상에서 변경 없이 설치하고 실행해야 합니다.

    • 2.0 및 3.5: 테스트에서 이러한 버전의 .NET Framework를 대상으로 하는 패키지된 데스크톱 애플리케이션은 일반적으로 작동하지만 일부 시나리오에서는 성능 문제가 발생할 수 있습니다. 이러한 패키지된 애플리케이션을 설치하고 실행하려면 .NET Framework 3.5 기능을 대상 머신에 설치해야 합니다(이 기능에는 .NET Framework 2.0 및 3.0도 포함되어 있음). 또한 이러한 애플리케이션을 패키지한 후에는 철저히 테스트해야 합니다.

  • 애플리케이션에는 드라이버가 필요합니다. MSIX는 드라이버를 지원하지 않습니다.

  • 애플리케이션은 다른 앱과 데이터를 공유하기 위해 AppData 폴더 또는 레지스트리에 씁니다. 변환 후 AppData는 각 앱에 대한 프라이빗 저장소인 로컬 앱 데이터 저장소로 리디렉션됩니다.

    애플리케이션에서 HKEY_LOCAL_MACHINE 레지스트리 하이브에 쓰는 모든 항목은 격리된 이진 파일로 리디렉션되고, 애플리케이션에서 HKEY_CURRENT_USER 레지스트리 하이브에 쓰는 모든 항목은 사용자별, 앱별 프라이빗 위치에 배치됩니다. 파일 및 레지스트리 리디렉션에 대한 자세한 내용은 데스크톱 브리지의 백그라운드 작업을 참조하세요.

  • 애플리케이션에서 앱의 설치 디렉터리에 씁니다. 예를 들어 애플리케이션에서 exe와 동일한 디렉터리에 배치하는 로그 파일에 씁니다. 폴더가 보호되므로 지원되지 않습니다. 로컬 앱 데이터 저장소와 같은 다른 위치에 쓰는 것이 좋습니다. 1809년 이상에서 이를 허용하는 기능을 추가했습니다.

  • 애플리케이션에서 현재 작업 디렉터리를 사용합니다. 런타임에서 패키지된 데스크톱 애플리케이션은 이전에 데스크톱 .LNK 바로 가기에서 지정한 것과 동일한 작업 디렉터리를 가져올 수 없습니다. 애플리케이션이 제대로 작동하기 위해 올바른 디렉터리를 사용해야 하는 경우 런타임에 CWD를 변경해야 합니다.

  • 애플리케이션에서 Windows 병렬 폴더에서 어셈블리를 설치하고 로드합니다. 예를 들어 애플리케이션은 C 런타임 라이브러리 VC8 또는 VC9를 사용하고 Windows 병렬 폴더에서 동적으로 연결합니다. 즉, 코드가 C:\Windows\WinSxS와 같은 공유 폴더의 공통 DLL 파일을 사용하고 있습니다. 이는 지원되지 않습니다. 재배포 가능 라이브러리 파일에 직접 코드에 연결하여 정적으로 연결해야 합니다.

기타 고려 사항

  • 적절한 아키텍처에서 설치 관리자를 다시 패키징합니다. 설치 관리자를 x86 컴퓨터에 설치하려는 경우 x86 컴퓨터에서 설치 관리자를 다시 패키지해야 합니다. x64 컴퓨터용 설치 관리자에 적용됩니다.

    참고 항목

    앱에서 설치 디렉터리에 쓰거나 현재 작업 디렉터리를 사용해야 하는 경우 패키지 지원 프레임워크를 사용하여 런타임 픽스업을 패키지에 추가하는 것을 고려할 수도 있습니다. 자세한 내용은 이 문서를 참조하세요.