설치 관리자 알아보기Know your installer

이 문서에서는 기존 설치 관리자를 MSIX으로 변환 하기 전에 알아두어야 할 사항을 나열 합니다.This article lists the things you need to know before you convert your existing installer into an MSIX. 패키징 프로세스를 위해 응용 프로그램을 준비 하는 데 많은 작업을 수행 하지 않아도 되지만, 아래 항목 중 하나 이상이 응용 프로그램에 적용 되는 경우 패키지 하기 전에 해결 해야 합니다.You might not have to do much to get your application ready for the packaging process, but if any of the items below applies to your application, you need to address it before packaging.

  • __응용 프로그램에 서비스가__있습니다.Your application has a service. 서비스를 사용 하 여 응용 프로그램을 변환 하는 것을 지원 하지만 서비스 변환에 대 한 제한 사항을 염두에 두어야 합니다.We support converting applications with services, but its important to keep in mind the limitations to converting a service. 변환 후에는 서비스를 포함 하는 MSIX을 설치 하기 위해 관리자 권한 상승이 필요 합니다.After conversion, you will need admin elevation in order to install the MSIX that contains a service. MSIX 패키징 도구의 버전 1.2019.1220.0에서 시작 하는 서비스를 사용 하 여 응용 프로그램을 변환 하 고, Windows 10의 스프링 2020 릴리스부터 서비스를 사용 하 여 MSIX을 배포할 수 있습니다.You can convert an application with services beginning in version 1.2019.1220.0 of the MSIX Packaging Tool, and you can deploy the MSIX with services beginning in the spring 2020 release of Windows 10.

  • __설치 관리자를 다시 시작 해야__합니다.Your installer requires a restart. 설치 관리자가 다시 시작해야 하는 경우 버전 1.2019.701.0에서 시작 하는 Msix 패키징 도구에서 지원 됩니다.If your installer requires a restart, this is supported in the MSIX Packaging Tool beginning in version 1.2019.701.0. 설치 관리자에서 다시 시작 해야 함을 나타내는 드물게 발생 하는 종료 코드를 반환 하는 경우 MSIX 패키징 도구 설정의 종료 코드 다시 시작 섹션에 추가 해야 합니다.If your installer returns an uncommon exit code to indicate it needs a restart, you should add it to the restart exit codes section of the MSIX Packaging Tool settings.

  • __.Net 응용 프로그램에 4.6.2 보다 이전 버전의 .NET Framework 필요__합니다.Your .NET application requires a version of the .NET Framework earlier than 4.6.2. .NET 응용 프로그램을 패키지 하는 경우 응용 프로그램 대상 .NET Framework 4.6.2 이상으로 하는 것이 좋습니다.If you are packaging a .NET application, we recommend that your application target .NET Framework 4.6.2 or later. 패키지 된 데스크톱 응용 프로그램을 설치 하 고 실행 하는 기능은 Windows 10, 버전 1607 (기념일 업데이트 라고도 함)에 처음 도입 되었으며,이 OS 버전에는 기본적으로 .NET Framework 4.6.2 포함 되어 있습니다.The ability to install and run packaged desktop applications was first introduced in Windows 10, version 1607 (also called the Anniversary Update), and this OS version includes the .NET Framework 4.6.2 by default. 이후 버전의 OS 버전에는 이후 버전의 .NET Framework 포함 되어 있습니다.Later OS versions include later versions of the .NET Framework. Windows 10의 이후 버전에 포함 된 .NET 버전에 대 한 전체 목록은 이 문서를 참조 하세요.For a full list of what versions of .NET are included in later versions of Windows 10, see this article.

    패키지 된 데스크톱 응용 프로그램에서 4.6.2 이전 버전의 .NET Framework를 대상으로 하는 것은 대부분의 경우 작동 합니다.Targeting versions of the .NET Framework earlier than 4.6.2 in packaged desktop applications is expected to work in most cases. 그러나 4.6.2 보다 이전 버전을 대상으로 하는 경우에는 패키지 된 데스크톱 응용 프로그램을 사용자에 게 배포 하기 전에 완전히 테스트 해야 합니다.However, if you target an earlier version than 4.6.2, you should fully test your packaged desktop application before distributing it to users.

    • 4.0-4.6.1: 이러한 버전의 .NET Framework를 대상으로 하는 응용 프로그램은 4.6.2 이상에서 문제 없이 실행 될 것으로 예상 됩니다.4.0 - 4.6.1: Applications that target these versions of the .NET Framework are expected to run without issues on 4.6.2 or later. 따라서 이러한 응용 프로그램은 OS에 포함 된 .NET Framework 버전으로 Windows 10 버전 1607 이상에서 변경 하지 않고 설치 하 고 실행 해야 합니다.Therefore, these applications should install and run without changes on Windows 10, version 1607 or later with the version of the .NET Framework that is included with the OS.

    • 2.0 및 3.5: 테스트에서 이러한 .NET Framework 버전을 대상으로 하는 패키지 된 데스크톱 응용 프로그램은 일반적으로 작동 하지만 일부 시나리오에서 성능 문제를 나타낼 수 있습니다.2.0 and 3.5: In our testing, packaged desktop applications that target these versions of the .NET Framework generally work but may exhibit performance issues in some scenarios. 이러한 패키지 된 응용 프로그램을 설치 하 고 실행 하려면 .NET Framework 3.5 기능 을 대상 컴퓨터에 설치 해야 합니다 .이 기능은 .NET Framework 2.0 및 3.0도 포함 합니다.In order for these packaged applications to install and run, the .NET Framework 3.5 feature must be installed on the target machine (this feature also includes .NET Framework 2.0 and 3.0). 패키지 한 후에도 이러한 응용 프로그램을 철저 하 게 테스트 해야 합니다.You should also test these applications thoroughly after you package them.

  • __응용 프로그램에 드라이버가 필요__합니다.Your application requires a driver. MSIX은 드라이버를 지원 하지 않습니다.MSIX does not support drivers.

  • __응용 프로그램은 다른 앱과 데이터를 공유 하는 의도로 AppData 폴더 또는 레지스트리에 기록__합니다.Your application writes to the AppData folder or to the registry with the intention of sharing data with another app. 변환 후 AppData는 각 앱에 대 한 개인 저장소 인 로컬 앱 데이터 저장소로 리디렉션됩니다.After conversion, AppData is redirected to the local app data store, which is a private store for each app.

    응용 프로그램이 HKEY_LOCAL_MACHINE 레지스트리 하이브에 쓰는 모든 항목은 격리 된 이진 파일로 리디렉션되고 응용 프로그램에서 HKEY_CURRENT_USER 레지스트리 하이브에 쓰는 모든 항목은 개인 사용자별, 앱 별 위치에 배치 됩니다.All entries that your application writes to the HKEY_LOCAL_MACHINE registry hive are redirected to an isolated binary file and any entries that your application writes to the HKEY_CURRENT_USER registry hive are placed into a private per-user, per-app location. 파일 및 레지스트리 리디렉션에 대 한 자세한 내용은 바탕 화면 브리지의배경 정보를 참조 하세요.For more details about file and registry redirection, see Behind the scenes of the Desktop Bridge.

  • __응용 프로그램은 앱에 대 한 설치 디렉터리에 기록__합니다.Your application writes to the install directory for your app. 예를 들어 응용 프로그램은 exe와 동일한 디렉터리에 저장 하는 로그 파일에 기록 합니다.For example, your application writes to a log file that you put in the same directory as your exe. 이 폴더는 보호 되므로 지원 되지 않습니다.This isn't supported because the folder is protected. 로컬 앱 데이터 저장소와 같은 다른 위치에 쓰는 것이 좋습니다.We recommend writing to another location like the local app data store. 1809 이상에서이를 허용 하는 기능을 추가 했습니다.We have added a capability that allows this in 1809 and later.

  • __응용 프로그램은 현재 작업 디렉터리를 사용__합니다.Your application uses the current working directory. 런타임에 패키지 된 데스크톱 응용 프로그램은 이전에 데스크톱에서 지정한 것과 동일한 작업 디렉터리를 가져올 수 없습니다. .LNK 바로 가기입니다.At runtime, your packaged desktop application won't get the same working directory that you previously specified in your desktop .LNK shortcut. 응용 프로그램이 제대로 작동 하려면 올바른 디렉터리가 중요 한 경우 런타임에 CWD를 변경 해야 합니다.You need to change your CWD at runtime if having the correct directory is important for your application to function correctly.

  • __응용 프로그램은 Windows side-by-side 폴더에서 어셈블리를 설치 하 고 로드__합니다.Your application installs and loads assemblies from the Windows side-by-side folder. 예를 들어 응용 프로그램에서 C 런타임 라이브러리 VC8 또는 VC9를 사용 하 고 Windows side-by-side 폴더에서 동적으로 연결 하는 경우, 코드에서 공유 폴더의 공용 DLL 파일을 사용 하는 것을 의미 합니다 (예: C:\Windows\WinSxS.).For example, your application uses C runtime libraries VC8 or VC9 and is dynamically linking them from Windows side-by-side folder, meaning your code is using the common DLL files from a shared folder, such as C:\Windows\WinSxS. 이는 지원되지 않습니다.This is not supported. 재배포 가능 라이브러리 파일을 코드에 직접 연결 하 여 정적으로 링크 해야 합니다.You will need to statically link them by linking to the redistributable library files directly into your code.

    참고

    응용 프로그램에서 설치 디렉터리에 써야 하거나 현재 작업 디렉터리를 사용 해야 하는 경우 패키지 지원 프레임 워크 를 사용 하 여 런타임 픽스업을 패키지에 추가 하는 것을 고려할 수도 있습니다.If your app needs to write to the installation directory or use the current working directory, you can also consider adding a runtime fixup using the Package Support Framework to your package. 자세한 내용은 이 문서를 참조하세요.For more details, see this article.