Desktop App Converter를 사용하여 데스크톱 애플리케이션 패키징Package a desktop application using the Desktop App Converter

참고

Desktop App Converter 도구는 더 이상 사용되지 않습니다.The Desktop App Converter tool is deprecated. 대신 MSIX 패키징 도구를 사용하는 것이 좋습니다.We recommend that you use the MSIX Packaging Tool instead.

DAC 아이콘

DAC(Desktop App Converter)는 Microsoft Store를 통한 배포 및 서비스를 포함하여 최신 Windows 기능과 통합할 수 있는 데스크톱 애플리케이션에 대한 패키지를 만듭니다.The Desktop App Converter (DAC) creates packages for desktop applications to integrate with the latest Windows features, including distribution and servicing via the Microsoft Store. 여기에는 Win32 앱 및 사용자가 .NET 4.6.1을 사용하여 만든 앱이 포함됩니다.This includes Win32 apps and apps that you've created by using .NET 4.6.1.

Get the Desktop App Converter(데스크톱 앱 변환기 다운로드)Get the Desktop App Converter

'Converter'라는 용어가 이 도구의 이름으로 표시되지만 실제로는 앱을 변환하지 않습니다.While the term "Converter" appears in the name of this tool, it doesn't actually convert your app. 즉, 애플리케이션이 변경되지 않은 상태로 유지됩니다.Your application remains unchanged. 그러나 이 도구는 패키지 ID 및 광범위한 WinRT API를 호출하는 기능이 포함된 Windows 앱 패키지를 생성합니다.However, this tool generates a Windows app package with a package identity and the ability to call a vast range of WinRT APIs.

개발 머신에서 Add-AppxPackage PowerShell cmdlet을 사용하여 해당 패키지를 설치할 수 있습니다.You can install that package by using the Add-AppxPackage PowerShell cmdlet on your development machine.

변환기는 변환기 다운로드의 일부로 제공되는 클린 기본 이미지를 사용하여 격리된 Windows 환경에서 데스크톱 설치 관리자를 실행합니다.The converter runs the desktop installer in an isolated Windows environment by using a clean base image provided as part of the converter download. 또한 데스크톱 설치 관리자가 수행한 모든 레지스트리 및 파일 시스템 I/O를 캡처하고 출력의 일부로 패키징합니다.It captures any registry and file system I/O made by the desktop installer and packages it as part of the output.

중요

Desktop App Converter는 Windows 10 버전 1607 이상에서 지원됩니다.Desktop App Converter is supported on Windows 10, version 1607, and later. 이는 Windows 10 1주년 업데이트(10.0 빌드 14393) 이상 릴리스 또는 Visual Studio 이후 릴리스를 대상으로 하는 프로젝트에만 사용할 수 있습니다.It can only be used in projects that target Windows 10 Anniversary Update (10.0; Build 14393) or a later release in Visual Studio.

패키지 생성 외에도 더 많은 작업을 수행하는 DACThe DAC does more than just generate a package for you

사용자를 위해 수행할 수 있는 몇 가지 추가 작업은 다음과 같습니다.Here's a few extra things it can do for you.

Windows 10 크리에이터스 업데이트Windows 10 Creators Update

✔️ 미리 보기 처리기, 썸네일 이미지 처리기, 속성 처리기, 방화벽 규칙, URL 플래그를 자동으로 등록합니다.Automatically register your preview handlers, thumbnail handlers, property handlers, firewall rules, URL flags.

✔️ 사용자가 파일 탐색기에서 종류 열을 사용하여 파일을 그룹화할 수 있게 하는 파일 형식 매핑을 자동으로 등록합니다.Automatically register file type mappings that enable users to group files by using the Kind column in File Explorer.

✔️ 퍼블릭 COM 서버를 등록합니다.Register your public COM servers.

Windows 10 1주년 업데이트 이상Windows 10 Anniversary Update or later

✔️ 앱을 테스트할 수 있도록 패키지에 자동으로 서명합니다.Automatically sign your package so that you can test your app.

✔️ 패키지된 앱 및 Microsoft Store 요구 사항과 비교하여 애플리케이션의 유효성을 검사합니다.Validate your application against packaged app and Microsoft Store requirements.

옵션의 전체 목록은 이 가이드의 매개 변수 섹션을 참조하세요.To find a complete list of options, see the Parameters section of this guide.

패키지를 만들 준비가 되었으면 시작해 보겠습니다.If you're ready to create your package, let's start.

먼저 애플리케이션 준비First, prepare your application

애플리케이션에 대한 패키지 만들기를 시작하기 전에 이 가이드를 검토합니다. 데스크톱 애플리케이션 패키지를 위한 준비.Review this guide before you begin creating a package for your application: Prepare to package a desktop application.

시스템에서 변환기를 실행할 수 있는지 확인Make sure that your system can run the converter

시스템에서 다음 요구 사항을 충족하는지 확인합니다.Make sure that your system meets the following requirements:

Desktop App Converter 시작Start the Desktop App Converter

  1. Desktop App Converter를 다운로드하여 설치합니다.Download and install the Desktop App Converter.

  2. 관리자 권한으로 Desktop App Converter를 실행합니다.Run the Desktop App Converter as an administrator.

    관리자 권한으로 DAC 실행

    콘솔 창이 표시됩니다.A console window appears. 해당 콘솔 창을 사용하여 명령을 실행합니다.You'll use that console window to run commands.

몇 가지 항목 설정(설치 관리자가 있는 앱만 해당)Set a few things up (apps with installers only)

애플리케이션에 설치 관리자가 없는 경우 다음 섹션으로 건너 뛸 수 있습니다.You can skip ahead to the next section if your application doesn't have an installer.

  1. 운영 체제의 버전 번호를 확인합니다.Identify the version number of your operating system.

    이렇게 하려면 실행 대화 상자에서 winver를 입력한 다음, 확인 단추를 선택합니다.To do that, type winver in the Run dialog box, and then choose the OK button.

    winver

    Windows 정보 대화 상자에서 Windows 빌드 버전을 확인할 수 있습니다.You'll find the version of your Windows build in the About Windows dialog box.

    Windows 10 버전

  2. 해당 Desktop App Converter 기본 이미지를 다운로드합니다.Download the appropriate Desktop app Converter base image.

    파일 이름에 표시되는 버전 번호가 Windows 빌드의 버전 번호와 일치하는지 확인합니다.Make sure that the version number that appears in the name of the file matches the version number of your Windows build.

    중요

    15063 빌드 번호를 사용하고 해당 빌드의 부 버전이 .483 이상인 경우(예: 15063.540), BaseImage-15063-UPDATE.wim 파일을 다운로드해야 합니다.If you're using build number 15063, and the minor version of that build is equal to or greater than .483 (For example: 15063.540), make sure to download the BaseImage-15063-UPDATE.wim file. 해당 빌드의 부 버전이 .483 미만인 경우 BaseImage-15063.wim 파일을 다운로드합니다.If the minor version of that build is less than .483, download the BaseImage-15063.wim file. 이 기본 파일의 호환되지 않는 버전을 이미 설치한 경우 수정할 수 있습니다.If you've already setup an incompatible version of this base file, you can fix it. 이 작업을 수행하는 방법은 이 블로그 게시물에서 설명하고 있습니다.This blog post explains how to do that.

  3. 다운로드한 파일을 나중에 찾을 수 있는 컴퓨터의 아무 위치에 저장합니다.Place the downloaded file anywhere on your computer where you'll be able to find it later.

  4. Desktop App Converter를 시작할 때 표시된 콘솔 창에서 Set-ExecutionPolicy bypass 명령을 실행합니다.In the console window that appeared when you started the Desktop App Converter, run this command: Set-ExecutionPolicy bypass.

  5. DesktopAppConverter.exe -Setup -BaseImage .\BaseImage-1XXXX.wim -Verbose 명령을 실행하여 변환기를 설치합니다.Set up the converter by running this command: DesktopAppConverter.exe -Setup -BaseImage .\BaseImage-1XXXX.wim -Verbose.

  6. 컴퓨터를 다시 시작하라는 메시지가 표시되면 해당 컴퓨터를 다시 시작합니다.Restart your computer if you're prompted to do so.

    변환기에서 기본 이미지를 확장하면 콘솔 창에 상태 메시지가 표시됩니다.Status messages appear in the console window as the converter expands the base image. 상태 메시지가 표시되지 않으면 아무 키를 누릅니다.If you don't see any status messages, press any key. 이렇게 하면 콘솔 창의 내용이 새로 고쳐집니다.This can cause the contents of the console window to refresh.

    콘솔 창의 상태 메시지

    기본 이미지가 완전히 확장되면 다음 섹션으로 이동합니다.When the base image is fully expanded, move to the next section.

앱 패키징Package an app

앱을 패키지하려면 Desktop App Converter를 시작할 때 열린 콘솔 창에서 DesktopAppConverter.exe 명령을 실행합니다.To Package your app, run the DesktopAppConverter.exe command in the console window that opened when you started the Desktop App Converter.

매개 변수를 사용하여 애플리케이션의 패키지 이름, 게시자 및 버전 번호를 지정합니다.You'll specify the package name, publisher and version number of the application by using parameters.

참고

Microsoft Store에서 앱 이름을 예약한 경우 파트너 센터를 사용하여 패키지 및 게시자 이름을 가져올 수 있습니다.If you've reserved your app name in the Microsoft Store, you can obtain the package and publisher names by using Partner Center. 다른 시스템에서 앱을 사이드로드하려면 선택한 게시자 이름이 앱 서명에 사용하는 인증서의 이름과 일치하는 경우에만 해당 이름을 제공할 수 있습니다.If you plan to sideload your app onto other systems, you can provide your own names for these as long as the publisher name that you choose matches the name on the certificate you use to sign your app.

명령 매개 변수를 빠르게 확인A quick look at command parameters

필수 매개 변수는 다음과 같습니다.Here are the required parameters.

DesktopAppConverter.exe
-Installer <String>
-Destination <String>
-PackageName <String>
-Publisher <String>
-Version <Version>

각각에 대한 자세한 내용은 여기서 참조할 수 있습니다.You can read about each one here.

Examples

앱을 패키지하는 몇 가지 일반적인 방법은 다음과 같습니다.Here's a few common ways to package your app.

설치 관리자(.msi) 파일이 있는 애플리케이션 패키징Package an application that has an installer (.msi) file

Installer 매개 변수를 사용하여 설치 관리자 파일을 가리킵니다.Point to the installer file by using the Installer parameter.

DesktopAppConverter.exe -Installer C:\Installer\MyAppSetup.msi -Destination C:\Output\MyApp -PackageName "MyApp" -Publisher "CN=MyPublisher" -Version 0.0.0.1

중요

그러나 여기서는 두 가지 중요한 사항을 명심해야 합니다.There are two important things to keep in mind here. 먼저, 설치 관리자가 독립 폴더에 있고 해당 설치 관리자와 관련된 파일만 동일한 폴더에 있는지 확인합니다.First, make sure that your installer is located in an independent folder and that only files related to that installer are in the same folder. 변환기는 해당 폴더의 모든 콘텐츠를 격리된 Windows 환경에 복사합니다.The converter copies all of the contents of that folder to the isolated Windows environment.
다음으로, 파트너 센터에서 ID를 번호로 시작하는 패키지에 할당하는 경우 -AppId 매개 변수도 전달해야 하며, 마침표 구분 기호 뒤의 문자열 접미사만 해당 매개 변수의 값으로 사용합니다.Secondly, if Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.

설치 관리자에 종속 라이브러리 또는 프레임워크 설치 관리자가 포함되는 경우 약간 다른 작업을 구성해야 할 수도 있습니다.If your installer includes installers for dependent libraries or frameworks, you might have to organize things a bit a differently. 데스크톱 브리지를 사용하여 여러 설치 관리자 연결을 참조하세요.See Chaining multiple installers with the Desktop Bridge.

설치 실행 파일이 있는 애플리케이션 패키징Package an application that has a setup executable file

Installer 매개 변수를 사용하여 설치 실행 파일을 가리킵니다.Point to the setup executable by using the Installer parameter.

DesktopAppConverter.exe -Installer C:\Installer\MyAppSetup.exe -InstallerArguments "/S" -Destination C:\Output\MyApp -PackageName "MyApp" -Publisher "CN=MyPublisher" -Version 0.0.0.1

중요

파트너 센터에서 ID를 번호로 시작하는 패키지에 할당하는 경우 -AppId 매개 변수도 전달해야 하며, 마침표 구분 기호 뒤의 문자열 접미사만 해당 매개 변수의 값으로 사용합니다.If Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.

InstallerArguments는 선택적 매개 변수입니다.The InstallerArguments parameter is an optional parameter. 그러나 Desktop App Converter에는 무인 모드에서 실행하는 설치 관리자가 필요하므로 애플리케이션에서 자동으로 실행하기 위해 자동 플래그가 필요한 경우 이를 사용해야 할 수도 있습니다.However, because the Desktop App Converter needs your installer to run in unattended mode, you might have to use it if your application needs silent flags to run silently. /S 플래그는 매우 일반적인 자동 플래그이지만 설치 파일을 만드는 데 사용한 설치 관리자 기술에 따라 사용하는 플래그가 달라질 수 있습니다.The /S flag is a very common silent flag, but the flag that you use might be different depending on which installer technology you used to create the setup file.

설치 관리자가 없는 애플리케이션 패키징Package an application that doesn't have an installer

다음 예제에서는 애플리케이션 파일의 루트 폴더를 가리키는 Installer 매개 변수를 사용합니다.In this example, use the Installer parameter to point to the root folder of your application files.

AppExecutable 매개 변수를 사용하여 앱 실행 파일을 가리킵니다.Use the AppExecutable parameter to point to your apps executable file.

DesktopAppConverter.exe -Installer C:\Installer\MyApp\ -AppExecutable MyApp.exe -Destination C:\Output\MyApp -PackageName "MyApp" -Publisher "CN=MyPublisher" -Version 0.0.0.1

중요

파트너 센터에서 ID를 번호로 시작하는 패키지에 할당하는 경우 -AppId 매개 변수도 전달해야 하며, 마침표 구분 기호 뒤의 문자열 접미사만 해당 매개 변수의 값으로 사용합니다.If Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.

앱 패키징, 앱 서명, 패키지에 대한 유효성 검사 실행Package an app, sign the app, and run validation checks on the package

다음 예제는 로컬 테스트를 위해 애플리케이션에 서명한 다음, 패키지된 앱 및 Microsoft Store 요구 사항과 비교하여 애플리케이션의 유효성을 검사하는 방법을 보여 주는 점을 제외하고는 첫 번째 예제와 비슷합니다.This example is similar to first one except it shows how you can sign your application for local testing, and then validate your application against packaged app and Microsoft Store requirements.

DesktopAppConverter.exe -Installer C:\Installer\MyAppSetup.exe -InstallerArguments "/S" -Destination C:\Output\MyApp -PackageName "MyApp" -Publisher "CN=MyPublisher" -Version 0.0.0.1 -MakeAppx -Sign -Verbose -Verify

중요

파트너 센터에서 ID를 번호로 시작하는 패키지에 할당하는 경우 -AppId 매개 변수도 전달해야 하며, 마침표 구분 기호 뒤의 문자열 접미사만 해당 매개 변수의 값으로 사용합니다.If Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.

Sign 매개 변수는 인증서를 생성한 다음, 이를 통해 애플리케이션에 로그인합니다.The Sign parameter generates a certificate and then signs your application with it. 앱을 실행하려면 생성된 해당 인증서를 설치해야 합니다.To run your app, you'll have to install that generated certificate. 자세한 내용은 이 가이드의 패키지된 앱 실행 섹션을 참조하세요.To learn how, see the Run the packaged app section of this guide.

Verify 매개 변수를 사용하여 애플리케이션의 유효성을 검사할 수 있습니다.You can validate you application by using the Verify parameter.

선택적 매개 변수를 빠르게 확인A quick look at optional parameters

SignVerify는 선택적 매개 변수입니다.The Sign and Verify parameters are optional. 이 외에도 더 많은 선택적 매개 변수가 있습니다.There are many more optional parameters. 일반적으로 사용되는 몇 가지 선택적 매개 변수는 다음과 같습니다.Here are some of the more commonly used optional parameters.

[-ExpandedBaseImage <String>]
[-AppExecutable <String>]
[-AppFileTypes <String>]
[-AppId <String>]
[-AppDisplayName <String>]
[-AppDescription <String>]
[-PackageDisplayName <String>]
[-PackagePublisherDisplayName <String>]
[-MakeAppx]
[-LogFile <String>]
[<CommonParameters>]

이러한 항목은 모두 다음 섹션에서 참조할 수 있습니다.You can read about all of them in the next section.

매개 변수 참조Parameter Reference

Desktop App Converter를 실행할 때 사용할 수 있는 전체 매개 변수 목록(범주별 구성)은 다음과 같습니다.Here's the complete list of parameters (organized by category) that you can use when you run the Desktop App Converter.

전체 목록은 앱 콘솔 창에서 Get-Help 명령을 실행하여 볼 수도 있습니다.You can also view the entire list by running the Get-Help command in the app console window.

설치 매개 변수Setup parameters
-Setup [<SwitchParameter>]-Setup [<SwitchParameter>] 필수Required 설치 모드에서 DesktopAppConverter를 실행합니다.Runs DesktopAppConverter in setup mode. 설치 모드는 제공된 기본 이미지 확장을 지원합니다.Setup mode supports expanding a provided base image.
-BaseImage <문자열>-BaseImage <String> 필수Required 확장되지 않은 기본 이미지에 대한 전체 경로.Full path to an unexpanded base image. 이 매개 변수는 -Setup을 지정한 경우에 필요합니다.This parameter is required if -Setup is specified.
-LogFile <문자열>-LogFile <String> 선택Optional 로그 파일을 지정합니다.Specifies a log file. 생략하면 로그 파일의 임시 위치가 생성됩니다.If omitted, a log file temporary location will be created.
-NatSubnetPrefix <문자열>-NatSubnetPrefix <String> 선택Optional Nat 인스턴스에 사용할 접두사 값입니다.Prefix value to be used for the Nat instance. 일반적으로 사용자는 호스트 컴퓨터가 변환기의 NetNat과 동일한 서브넷 범위에 연결되는 경우에만 이 값을 변경하려고 합니다.Typically, you would want to change this only if your host machine is attached to the same subnet range as the converter's NetNat. Get NetNat cmdlet을 사용하여 현재 변환기 NetNat 구성을 쿼리할 수 있습니다.You can query the current converter NetNat config by using the Get-NetNat cmdlet.
-NoRestart [<SwitchParameter>]-NoRestart [<SwitchParameter>] 필수Required 설치 프로그램을 실행할 때 다시 부팅하라는 메시지를 표시하지 않습니다(컨테이너 기능을 사용하도록 설정하려면 다시 부팅해야 함).Don't prompt for reboot when running setup (reboot is required to enable the container feature).
변환 매개 변수Conversion parameters
-AppInstallPath <문자열>-AppInstallPath <String> 선택Optional 애플리케이션이 설치된 경우 설치 파일에 대한 애플리케이션 루트 폴더의 전체 경로입니다(예: "C:\Program Files (x86)\MyApp").The full path to your application's root folder for the installed files if it were installed (e.g., "C:\Program Files (x86)\MyApp").
-Destination <문자열>-Destination <String> 필수Required 원하는 변환기 appx 출력 대상으로, DesktopAppConverter는 이 위치가 없으면 만들 수 있습니다.The desired destination for the converter's appx output - DesktopAppConverter can create this location if it doesn't already exist.
-Installer <문자열>-Installer <String> 필수Required 애플리케이션의 설치 관리자 경로입니다. 무인/자동으로 실행할 수 있어야 합니다.The path to the installer for your application - must be able to run unattended/silently. 설치 관리자 없이 변환합니다. 이는 애플리케이션 파일의 루트 디렉터리에 대한 경로입니다.No-installer conversion, this is the path to the root directory of your application files.
-InstallerArguments <문자열>-InstallerArguments <String> 선택Optional 강제로 설치 관리자를 무인/자동으로 실행할 수 있도록 하기 위한 쉼표로 구분된 인수 목록 또는 인수 문자열입니다.A comma-separated list or string of arguments to force your installer to run unattended/silently. 설치 관리자가 msi인 경우 이 매개 변수는 선택적입니다.This parameter is optional if your installer is an msi. 설치 관리자에서 로그를 가져오려면 설치 관리자에 대한 로깅 인수를 여기에 제공하고 <log_folder> 경로를 사용합니다. 이는 변환기에서 적절한 경로로 바꾸는 토큰입니다.To get a log from your installer, supply the logging argument for the installer here and use the path <log_folder>, which is a token that the converter replaces with the appropriate path.

참고: 무인/자동 플래그와 로그 인수는 설치 관리자 기술에 따라 달라집니다.NOTE: The unattended/silent flags and log arguments will vary between installer technologies.

이 매개 변수의 사용 예제는 -InstallerArguments "/silent /log <log_folder>\install.log"입니다. 로그 파일을 생성하지 않는 다른 예제는 -InstallerArguments "/quiet", "/norestart"입니다. 다시 말해, 변환기에서 로그를 캡처하여 최종 로그 폴더에 저장하려면 모든 로그를 문자 그대로 <log_folder> 토큰 경로에 직접 전달해야 합니다.An example usage for this parameter: -InstallerArguments "/silent /log <log_folder>\install.log" Another example that doesn't produce a log file may look like: -InstallerArguments "/quiet", "/norestart" Again, you must literally direct any logs to the token path <log_folder> if you want the converter to capture it and put it in the final log folder.
-InstallerValidExitCodes <Int32>-InstallerValidExitCodes <Int32> 선택Optional 설치 관리자가 성공적으로 실행되었음을 나타내는 쉼표로 구분된 종료 코드 목록(예: 0, 1234, 5678)입니다.A comma-separated list of exit codes that indicate your installer ran successfully (for example: 0, 1234, 5678). 기본적으로 msi가 아닌 경우는 0이고 msi인 경우는 0, 1641, 3010입니다.By default this is 0 for non-msi, and 0, 1641, 3010 for msi.
-MakeAppx [<SwitchParameter>]-MakeAppx [<SwitchParameter>] 선택Optional 스위치(있는 경우)는 출력에 대해 MakeAppx를 호출하도록 이 스크립트에 지시합니다.A switch that, when present, tells this script to call MakeAppx on the output.
-MakeMSIX [<SwitchParameter>]-MakeMSIX [<SwitchParameter>] 선택Optional 이 스크립트에서 출력을 MSIX 패키지로 패키지하도록 지시하는 스위치(있는 경우)입니다.A switch that, when present, tells this script to package the output as an MSIX Package.
패키지 ID 매개 변수Package identity parameters
-PackageName <문자열>-PackageName <String> 필수Required 유니버설 Windows 앱 패키지의 이름The name of your Universal Windows App package. 파트너 센터에서 ID를 번호로 시작하는 패키지에 할당하는 경우 -AppId 매개 변수도 전달해야 하며, 마침표 구분 기호 뒤의 문자열 접미사만 해당 매개 변수의 값으로 사용합니다.If Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.
-Publisher <문자열>-Publisher <String> 필수Required 유니버설 Windows 앱 패키지의 게시자The publisher of your Universal Windows App package
-Version <버전>-Version <Version> 필수Required 유니버설 Windows 앱 패키지의 버전 번호The version number for your Universal Windows App package
패키지 매니페스트 매개 변수Package manifest parameters
-AppExecutable <문자열>-AppExecutable <String> 선택Optional 애플리케이션의 주 실행 파일(예: "MyApp.exe")의 이름입니다.The name of your application's main executable (eg "MyApp.exe"). 이 매개 변수는 설치 관리자 없이 변환하는 경우에 필요합니다.This parameter is required for a no-installer conversion.
-AppFileTypes <문자열>-AppFileTypes <String> 선택Optional 애플리케이션과 연결할 파일 형식의 쉼표로 구분된 목록입니다.A comma-separated list of file types which the application will be associated with. 사용 예제: -AppFileTypes "'.md', '.markdown'".Example usage: -AppFileTypes "'.md', '.markdown'".
-AppId <문자열>-AppId <String> 선택Optional Windows 앱 패키지 매니페스트에서 애플리케이션 ID로 설정할 값을 지정합니다.Specifies a value to set Application Id to in the Windows app package manifest. 값을 지정하지 않으면 PackageName에 대해 제공한 값으로 설정됩니다.If it is not specified, it will be set to the value passed in for PackageName. 대부분의 경우 PackageName을 사용하는 것이 좋습니다.In many cases, using the PackageName is fine. 그러나 파트너 센터에서 ID를 번호로 시작하는 패키지에 할당하는 경우 -AppId 매개 변수도 전달해야 하며, 마침표 구분 기호 뒤의 문자열 접미사만 해당 매개 변수의 값으로 사용합니다.However, if Partner Center assigns an identity to your package that begins with a number, make sure that you also pass in the -AppId parameter, and use only the string suffix (after the period separator) as the value of that parameter.
-AppDisplayName <문자열>-AppDisplayName <String> 선택Optional Windows 앱 패키지 매니페스트에서 애플리케이션 표시 이름으로 설정할 값을 지정합니다.Specifies a value to set Application Display Name to in the Windows app package manifest. 값을 지정하지 않으면 PackageName에 대해 제공한 값으로 설정됩니다.If it is not specified, it will be set to the value passed in for PackageName.
-AppDescription <문자열>-AppDescription <String> 선택Optional Windows 앱 패키지 매니페스트에서 애플리케이션 설명으로 설정할 값을 지정합니다.Specifies a value to set Application Description to in the Windows app package manifest. 값을 지정하지 않으면 PackageName에 대해 제공한 값으로 설정됩니다.If it is not specified, it will be set to the value passed in for PackageName.
-PackageDisplayName <문자열>-PackageDisplayName <String> 선택Optional Windows 앱 패키지 매니페스트에서 패키지 표시 이름으로 설정할 값을 지정합니다.Specifies a value to set Package Display Name to in the Windows app package manifest. 값을 지정하지 않으면 PackageName에 대해 제공한 값으로 설정됩니다.If it is not specified, it will be set to the value passed in for PackageName.
-PackagePublisherDisplayName <문자열>-PackagePublisherDisplayName <String> 선택Optional Windows 앱 패키지 매니페스트에서 패키지 게시자 표시 이름으로 설정할 값을 지정합니다.Specifies a value to set Package Publisher Display Name to in the Windows app package manifest. 값을 지정하지 않으면 Publisher에 대해 제공한 값으로 설정됩니다.If it is not specified, it will be set to the value passed in for Publisher.
정리 매개 변수Cleanup parameters
-Cleanup [<옵션>]-Cleanup [<Option>] 필수Required DesktopAppConverter 아티팩트에 대한 정리를 실행합니다.Runs cleanup for the DesktopAppConverter artifacts. 정리 모드에는 3가지 유효한 옵션이 있습니다.There are 3 valid options for the Cleanup mode.
-Cleanup All-Cleanup All 확장된 기본 이미지를 모두 삭제하고, 임시 변환기 파일을 제거하고, 컨테이너 네트워크를 제거하고, 선택적 Windows 기능인 컨테이너를 사용하지 않도록 설정합니다.Deletes all expanded base images, removes any temporary converter files, removes the container network, and disables the optional Windows feature, Containers.
-Cleanup WorkDirectory-Cleanup WorkDirectory 필수Required 모든 임시 변환기 파일을 제거합니다.Removes all the temporary converter files.
-Cleanup ExpandedImage-Cleanup ExpandedImage 필수Required 호스트 컴퓨터에 설치된 확장된 기본 이미지를 모두 삭제합니다.Deletes all the expanded base images installed on your host machine.
패키지 아키텍처 매개 변수Package architecture parameters
-PackageArch <문자열>-PackageArch <String> 필수Required 지정된 아키텍처를 사용하여 패키지를 생성합니다.Generates a package with the specified architecture. 유효한 옵션은 'x86' 또는 'x64'입니다(예: -PackageArch x86).Valid options are 'x86' or 'x64'; for example, -PackageArch x86. 이 매개 변수는 선택 사항입니다.This parameter is optional. 지정하지 않으면 DesktopAppConverter는 패키지 아키텍처를 자동으로 검색하려고 합니다.If unspecified, the DesktopAppConverter will try to auto-detect package architecture. 자동 검색에 실패하면 기본적으로 x64 패키지로 설정합니다.If auto-detection fails, it will default to x64 package.
기타 매개 변수Miscellaneous parameters
-ExpandedBaseImage <문자열>-ExpandedBaseImage <String> 선택Optional 이미 확장된 기본 이미지에 대한 전체 경로.Full path to an already expanded base image.
-LogFile <문자열>-LogFile <String> 선택Optional 로그 파일을 지정합니다.Specifies a log file. 생략하면 로그 파일의 임시 위치가 생성됩니다.If omitted, a log file temporary location will be created.
-Sign [<SwitchParameter>]-Sign [<SwitchParameter>] 선택Optional 테스트용으로 생성된 인증서를 사용하여 출력 Windows 앱 패키지에 서명하도록 이 스크립트에 명령합니다.Tells this script to sign the output Windows app package by using a generated certificate for testing purposes. 이 스위치는 -MakeAppx 스위치와 함께 있어야 합니다.This switch should be present alongside the switch -MakeAppx.
<일반 매개 변수><Common parameters> 필수Required 이 cmdlet은 일반 매개 변수 Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariableOutVariable 매개 변수를 지원합니다.This cmdlet supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. 자세한 내용은 about_CommonParameters를 참조하세요.For more info, see about_CommonParameters.
-Verify [<SwitchParameter>]-Verify [<SwitchParameter>] 선택Optional 패키지된 앱 및 Microsoft Store 요구 사항과 비교하여 앱 패키지의 유효성을 검사하도록 DAC에 지시하는 스위치(있는 경우)입니다.A switch that, when present, tells the DAC to validate the app package against packaged app and Microsoft Store requirements. 결과는 "VerifyReport.xml"이라는 유효성 검사 보고서이며, 브라우저에서 가장 효율적으로 시각화됩니다.The result is a validation report "VerifyReport.xml", which is best visualized in a browser. 이 스위치는 -MakeAppx 스위치와 함께 있어야 합니다.This switch should be present alongside the switch -MakeAppx.
-PublishComRegistrations-PublishComRegistrations 선택Optional 설치 관리자에서 수행한 모든 퍼블릭 COM 등록을 검사하고 매니페스트에 유효한 등록을 게시합니다.Scans all public COM registrations made by your installer and publishes the valid ones in your manifest. 이 등록을 다른 애플리케이션에서 사용할 수 있도록 하려는 경우에만 이 플래그를 사용합니다.Use this flag only if you want to make these registrations available to other applications. 이러한 등록이 애플리케이션에서만 사용되는 경우 이 플래그를 사용할 필요가 없습니다.You don't need to use this flag if these registrations will be used only by your application.

앱이 패키지된 후에 COM 등록이 예상대로 작동하는지 확인하려면 이 문서를 검토하세요.Review this article to make sure that your COM registrations behave as you expect after you package your app.

패키지된 앱 실행Run the packaged app

앱을 실행하는 두 가지 방법이 있습니다.There's two ways to run your app.

한 가지 방법은 PowerShell 명령 프롬프트를 열어서 Add-AppxPackage –Register AppxManifest.xml 명령을 입력하는 것입니다.One way is to open a PowerShell command prompt, and then type this command: Add-AppxPackage –Register AppxManifest.xml. 서명할 필요가 없으므로 애플리케이션을 실행하는 가장 쉬운 방법일 수 있습니다.It's probably the easiest way to run your application because you don't have to sign it.

또 다른 방법은 인증서를 사용하여 애플리케이션에 서명하는 것입니다.Another way is to sign your application with a certificate. sign 매개 변수를 사용하는 경우 Desktop App Converter에서 사용자에 대한 인증서를 생성한 다음, 이를 사용하여 애플리케이션에 서명합니다.If you use the sign parameter, the Desktop App Converter will generate one for you, and then sign your application with it. 해당 파일의 이름은 auto-generated.cer이며, 패키지된 앱의 루트 폴더에서 찾을 수 있습니다.That file is named auto-generated.cer, and you can find it in the root folder of your packaged app.

다음 단계에 따라 생성된 인증서를 설치한 다음, 앱을 실행합니다.Follow these steps to install the generated certificate, and then run your app.

  1. auto-generated.cer 파일을 두 번 클릭하여 인증서를 설치합니다.Double-click the auto-generated.cer file to install the certificate.

    생성된 인증서 파일

    참고

    암호를 입력하라는 메시지가 표시되면 기본 암호("123456")를 사용합니다.If you're prompted for a password, use the default password "123456".

  2. 인증서 대화 상자에서 인증서 설치 단추를 선택합니다.In the Certificate dialog box, choose the Install Certificate button.

  3. 인증서 가져오기 마법사에서 인증서를 로컬 머신에 설치하고, 인증서를 신뢰할 수 있는 사용자 인증서 저장소에 배치합니다.In the Certificate Import Wizard, install the certificate onto the Local Machine, and place the certificate into the Trusted People certificate store.

    신뢰할 수 있는 사용자 저장소

  4. 패키지된 앱의 루트 폴더에서 Windows 앱 패키지 파일을 두 번 클릭합니다.In root folder of your packaged app, double click the Windows app package file.

    Windows 앱 패키지 파일

  5. 설치 단추를 선택하여 앱을 설치합니다.Install the app, by choosing the Install button.

    설치 단추

패키지된 앱 수정Modify the packaged app

버그를 해결하거나, 시각적 자산을 추가하거나, 애플리케이션을 향상시키도록 라이브 타일과 같은 최신 환경을 통해 패키지된 애플리케이션을 변경할 수 있습니다.You'll likely make changes to your packaged application to address bugs, add visual assets, or enhance your application with modern experiences such as live tiles.

변경한 후에는 변환기를 다시 실행할 필요가 없습니다.After you make your changes, you don't need to run the converter again. 대부분의 경우 MakeAppx 도구 및 DAC에서 앱에 대해 생성한 appxmanifest.xml 파일을 사용하여 애플리케이션을 다시 패키지하면 됩니다.In most cases, you can just repackage your application by using the MakeAppx tool and the appxmanifest.xml file the DAC generates for your app. Windows 앱 패키지 생성을 참조하세요.See Generate a Windows app package.

참고

설치 관리자에서 지정한 레지스트리 설정을 변경하는 경우 Desktop App Converter를 다시 실행하여 해당 변경 내용을 선택해야 합니다.If you make changes to registry settings that your installer makes, you will have to run the Desktop App Converter again to pick up those changes.

다음 두 섹션에서는 패키지된 애플리케이션에 대한 몇 가지 선택적인 "수정 사항"에 대해 설명합니다.The following two sections describe a couple of optional fix-ups to the packaged application that you might consider.

불필요한 파일 및 레지스트리 키 삭제Delete unnecessary files and registry keys

Desktop App Converter는 컨테이너에서 파일과 시스템 노이즈를 걸러낼 때 매우 보수적으로 접근합니다.The desktop App Converter takes a very conservative approach to filtering out files and system noise in the container.

원하는 경우 VFS 폴더를 검토하고 설치 관리자에 필요하지 않은 파일을 삭제할 수 있습니다.If you want, you can review the VFS folder and delete any files that your installer doesn't need. 또한 Reg.dat의 내용을 검토하고, 앱에서 설치하지 않았거나 필요하지 않은 키를 삭제할 수 있습니다.You can also review the contents of Reg.dat and delete any keys that are not installed/needed by the app.

손상된 PE 헤더 수정Fix corrupted PE headers

변환 프로세스 중에 DesktopAppConverter는 PEHeaderCertFixTool을 자동으로 실행하여 손상된 PE 헤더를 수정합니다.During the conversion process, the DesktopAppConverter automatically runs the PEHeaderCertFixTool to fixup any corrupted PE headers. 그러나 UWP Windows 앱 패키지, 느슨한 파일 또는 특정 이진 파일에서 PEHeaderCertFixTool을 실행할 수도 있습니다.However, you can also run the PEHeaderCertFixTool on a UWP Windows app package, loose files, or a specific binary. 예를 들면 다음과 같습니다.Here's an example.

PEHeaderCertFixTool.exe <binary file>|<.appx package>|<folder> [/c] [/v]
 /c   -- check for corrupted certificate but do not fix (optional)
 /v   -- verbose (optional)
example1: PEHeaderCertFixTool app.exe
example2: PEHeaderCertFixTool c:\package.appx /c
example3: PEHeaderCertFixTool c:\myapp /c /v

Desktop App Converter의 원격 분석Telemetry from Desktop App Converter

Desktop App Converter가 사용자 및 사용자의 소프트웨어 사용에 대한 정보를 수집한 후 Microsoft로 보낼 수 있습니다.Desktop App Converter may collect information about you and your use of the software and send this info to Microsoft. 제품 설명서 및 Microsoft 개인 정보 취급 방침에서Microsoft의 데이터 수집 및 사용에 대해 알아볼 수 있습니다.You can learn more about Microsoft's data collection and use in the product documentation and in the Microsoft Privacy Statement. 귀하는 Microsoft 개인정보처리방침의 모든 규정을 준수한다는 데 동의합니다.You agree to comply with all applicable provisions of the Microsoft Privacy Statement.

기본적으로 Desktop App Converter에 대한 원격 분석은 사용되도록 설정됩니다.By default, telemetry will be enabled for the Desktop App Converter. 원격 분석을 원하는 설정으로 구성하려면 다음 레지스트리 키를 추가합니다.Add the following registry key to configure telemetry to a desired setting:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DesktopAppConverter
  • 1로 설정된 DWORD를 사용하여 DisableTelemetry 값을 추가 또는 편집합니다.Add or edit the DisableTelemetry value by using a DWORD set to 1.
  • 원격 분석을 사용하려면 이 키를 제거하거나 값을 0으로 설정합니다.To enable telemetry, remove the key or set the value to 0.

언어 지원Language support

Desktop App Converter는 유니코드를 지원하지 않으므로 중국어 문자나 ASCII가 아닌 문자는 도구에 사용할 수 없습니다.The Desktop App Converter does not support Unicode; thus, no Chinese characters or non-ASCII characters can be used with the tool.

알려진 Desktop App Converter 관련 문제Known issues with the Desktop App Converter

E_CREATING_ISOLATED_ENV_FAILED 및 E_STARTING_ISOLATED_ENV_FAILED 오류E_CREATING_ISOLATED_ENV_FAILED and E_STARTING_ISOLATED_ENV_FAILED errors

이러한 오류 중 하나를 받으면 다운로드 센터에서 유효한 기본 이미지를 사용하고 있는지 확인합니다.If you receive either of these errors, make sure that you're using a valid base image from the download center. 유효한 기본 이미지를 사용하는 경우 명령에서 -Cleanup All을 사용해 보세요.If you’re using a valid base image, try using -Cleanup All in your command. 그래도 작동하지 않는 경우 조사하는 데 도움이 되도록 로그를 converter@microsoft.com에 보내주세요.If that does not work, please send us your logs at converter@microsoft.com to help us investigate.

New-ContainerNetwork: 개체가 이미 있음 오류New-ContainerNetwork: The object already exists error

새 기본 이미지를 설치할 때 이 오류가 발생할 수 있습니다.You might receive this error when you setup a new base image. 이전에 Desktop App Converter가 설치된 개발자 머신에서 Windows 참가자 프로그램을 사용하는 경우 이 오류가 발생할 수 있습니다.This can happen if you have a Windows Insider flight on a developer machine that previously had the Desktop App Converter installed.

이 문제를 해결하려면 관리자 권한 명령 프롬프트에서 Netsh int ipv4 reset 명령을 실행한 다음, 머신을 다시 부팅합니다.To resolve this issue, try running the command Netsh int ipv4 reset from an elevated command prompt, and then reboot your machine.

.NET 애플리케이션이 "AnyCPU" 빌드 옵션으로 컴파일되어 설치하지 못함Your .NET application is compiled with the "AnyCPU" build option and fails to install

주 실행 파일 또는 종속성 중 하나가 Program Files 또는 Windows\System32 계층 구조의 임의 위치에 배치되는 경우 이 오류가 발생할 수 있습니다.This can happen if the main executable or any of the dependencies were placed anywhere in the Program Files or Windows\System32 folder hierarchy.

이 문제를 해결하려면 아키텍처별 데스크톱 설치 관리자(32비트 또는 64비트)를 사용하여 Windows 앱 패키지를 생성해 보세요.To resolve this issue, try using your architecture-specific desktop installer (32 bit or 64 bit) to generate a Windows app package.

퍼블릭 병렬 Fusion 어셈블리 게시가 작동하지 않음Publishing public side-by-side Fusion assemblies won't work

설치하는 동안 애플리케이션이 다른 프로세스에서 액세스할 수 있는 공개 side-by-side Fusion 어셈블리를 게시할 수 있습니다.During install, an application can publish public side-by-side Fusion assemblies, accessible to any other process. 프로세스 활성화 컨텍스트 생성 동안 이러한 어셈블리는 CSRSS.exe라는 시스템 프로세스에 의해 검색됩니다.During process activation context creation, these assemblies are retrieved by a system process named CSRSS.exe. 변환 프로세스에 대해 이 작업이 수행되면 이러한 어셈블리의 활성화 컨텍스트 생성 및 모듈 로드가 실패합니다.When this is done for a converted process, activation context creation and module loading of these assemblies will fail. 병렬 Fusion 어셈블리는 다음 위치에 등록되어 있습니다.The side-by-side Fusion assemblies are registered in the following locations:

  • 레지스트리: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\WinnersRegistry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Winners
  • 파일 시스템: %windir%\SideBySideFile System: %windir%\SideBySide

이는 알려진 제한 사항이며, 현재는 해결 방법이 없습니다.This is a known limitation and no workaround currently exists. 즉, ComCtl과 같은 받은 편지함 어셈블리는 OS와 함께 제공되므로 해당 종속성을 사용하는 것이 안전합니다.That said, Inbox assemblies, like ComCtl, are shipped with the OS, so taking a dependency on them is safe.

XML에서 오류가 발생했습니다.Error found in XML. 'Executable' 특성이 잘못되었습니다. 'MyApp.EXE' 값의 데이터 형식이 잘못되었습니다.The 'Executable' attribute is invalid - The value 'MyApp.EXE' is invalid according to its datatype

대문자 .EXE 확장명이 애플리케이션의 실행 파일에 있는 경우 이 오류가 발생할 수 있습니다.This can happen if the executables in your application have a capitalized .EXE extension. 그러나 이 확장명의 대/소문자는 애플리케이션의 실행 여부에 영향을 주지 않지만 DAC에서 이 오류가 발생할 수 있습니다.Although, the casing of this extension shouldn't affect whether your application runs, this can cause the DAC to generate this error.

이 문제를 해결하려면 패키지할 때 -AppExecutable 플래그를 지정하고 주 실행 파일의 확장명으로 소문자 ".exe"를 사용해 보세요(예: MYAPP.exe).To resolve this issue, try specifying the -AppExecutable flag when you package, and use the lower case ".exe" as the extension of your main executable (For example: MYAPP.exe). 또는 애플리케이션의 모든 실행 파일에 대한 대/소문자를 대문자에서 소문자로 바꿀 수 있습니다(예: .EXE에서 .exe로).Alternately you can change the casing for all executables in your application from uppercase to lowercase (For example: from .EXE to .exe).

손상되거나 잘못된 형식의 Authenticode 서명Corrupted or malformed Authenticode signatures

이 섹션에서는 Windows 앱 패키지에서 손상되거나 잘못된 형식의 Authenticode 서명이 포함되었을 수 있는 PE(이식 가능) 파일과 관련된 문제를 식별하는 방법에 대해 자세히 설명합니다.This section contains details on how to identify issues with Portable Executable (PE) files in your Windows app package that may contain corrupted or malformed Authenticode signatures. 이진 형식(예: .exe, .dll, .chm 등)일 수 있는 PE 파일의 Authenticode 서명이 잘못되면 패키지가 올바르게 서명되지 않으므로 Windows 앱 패키지에서 패키지가 배포되지 않습니다.Invalid Authenticode signatures on your PE files, which may be in any binary format (e.g. .exe, .dll, .chm, etc.), will prevent your package from being signed properly, and thus prevent it from being deployable from an Windows app package.

PE 파일의 Authenticode 서명 위치는 선택적 헤더 데이터 디렉터리의 인증서 표 항목 및 관련된 특성 인증서 표에 의해 지정됩니다.The location of the Authenticode signature of a PE file is specified by the Certificate Table entry in the Optional Header Data Directories and the associated Attribute Certificate Table. 서명 확인 중에 이러한 구조에 지정된 정보는 PE 파일에서 서명을 찾는 데 사용됩니다.During signature verification, the information specified in these structures is used to locate the signature on a PE file. 이러한 값이 손상되면 파일이 잘못 서명된 것처럼 보일 수 있습니다.If these values get corrupted then it is possible for a file to appear to be invalidly signed.

Authenticode 서명이 올바르려면 Authenticode 서명에 대해 다음 조건을 충족해야 합니다.For the Authenticode signature to be correct, the following must be true of the Authenticode signature:

  • PE 파일에 있는 WIN_CERTIFICATE 항목의 시작을 실행 파일의 끝을 지나도록 확장할 수 없습니다.The start of the WIN_CERTIFICATE entry in the PE file cannot extend past the end of the executable
  • WIN_CERTIFCATE 항목이 이미지의 끝에 위치해야 합니다.The WIN_CERTIFCATE entry should be located at the end of the image
  • WIN_CERTIFICATE 항목의 크기는 양수여야 합니다.The size of the WIN_CERTIFICATE entry must be positive
  • WIN_CERTIFICATE 항목이 32비트 실행 파일의 경우 IMAGE_NT_HEADERS32 구조체 뒤에서 시작해야 하고 64비트 실행 파일의 경우 IMAGE_NT_HEADERS64 구조체 뒤에서 시작해야 합니다.The WIN_CERTIFICATEentry must start after the IMAGE_NT_HEADERS32 structure for 32-bit executables and IMAGE_NT_HEADERS64 structure for 64-bit executables

자세한 내용은 Authenticode 포털 실행 파일 사양PE 파일 형식 사양을 참조하세요.For more details, please refer to the Authenticode Portal Executable specification and the PE file format specification.

SignTool.exe는 Windows 앱 패키지에 서명하려고 할 때 손상되거나 잘못된 형식의 이진 파일 목록을 출력할 수 있습니다.Note that SignTool.exe can output a list of the corrupted or malformed binaries when attempting to sign an Windows app package. 이렇게 하려면 APPXSIP_LOG 환경 변수를 1로 설정하여(예: set APPXSIP_LOG=1) 자세한 정보 로깅을 사용하도록 설정하고 SignTool.exe를 다시 실행합니다.To do this, enable verbose logging by setting the environment variable APPXSIP_LOG to 1 (e.g., set APPXSIP_LOG=1 ) and re-run SignTool.exe.

이러한 잘못된 형식의 이진 파일을 수정하려면 해당 이진 파일이 위의 요구 사항을 따르는지 확인합니다.To fix these malformed binaries, ensure they conform to the requirements above.

다음 단계Next steps

질문에 대한 답변 찾기Find answers to your questions

질문이 있으세요?Have questions? Stack Overflow에서 질문하세요.Ask us on Stack Overflow. 저희 팀은 이러한 태그를 모니터링합니다.Our team monitors these tags. 여기에서 문의할 수도 있습니다.You can also ask us here.

애플리케이션 실행/문제 찾기 및 해결Run your application / find and fix issues

패키지된 데스크톱 애플리케이션 실행, 디버그 및 테스트를 참조하세요.See Run, debug, and test a packaged desktop application

앱 배포Distribute your app

패키지된 데스크톱 애플리케이션 배포 참조See Distribute a packaged desktop application