Windows 데스크톱 앱을 범용 Windows 앱으로 변환하는 방법

0
614

Microsoft는 Windows 10 1 주년 업데이트를 통해 개발자가 기존 Windows 데스크톱 응용 프로그램을 UWP (범용 Windows 플랫폼) 응용 프로그램으로 변환 할 수있게되었습니다. 그러나 누구나 개발자뿐만 아니라 모든 앱에서이 작업을 수행 할 수 있습니다.

Windows 10의 변환기를 사용하면 .msi 또는 .exe 파일을 제공하면 .appx 패키지가 추출됩니다. 그런 다음이 앱을 PC에 사이드로드하거나 응용 프로그램 개발자 인 경우 결과 UWP 앱을 Windows 스토어에 제출할 수 있습니다. 이 기능은 Windows 10 1 주년 업데이트를 통해 모든 사용자에게 제공되며 많은 “레거시”응용 프로그램을 Windows 스토어로 가져옵니다.

왜 이렇게하고 싶습니까?

관련 : Windows 10 1 주년 업데이트의 새로운 기능

이 기능은 Microsoft의 Project Centennial의 최종 결과로, 이러한 “레거시”Win32 및 .NET Windows 데스크톱 응용 프로그램을 Windows Store 및 새로운 Universal Windows 플랫폼으로 가져 오도록 설계되었습니다.

왜 데스크탑 애플리케이션을 새로운 UWP 앱으로 변환하고 싶은지 궁금 할 것입니다. 우선 Windows 스토어에서는 UWP 앱만 허용됩니다. 이를 통해 개발자는 한 번의 클릭으로 설치, 쉬운 구매 및 자동 업데이트를 언급 할 필요없이 앱을 훨씬 더 많이 볼 수 있습니다.

Microsoft의 새로운 UWP 응용 프로그램 플랫폼은 샌드 박스이지만 변환하는 데스크톱 응용 프로그램은 그렇지 않습니다. 이러한 응용 프로그램은 기존 데스크톱 응용 프로그램과 마찬가지로 시스템에 대한 전체 액세스 권한을 갖습니다. Microsoft의 설명서에 따르면“UWP 앱으로서 앱은 클래식 데스크톱 앱으로 할 수있는 작업을 수행 할 수 있습니다. 실제 레지스트리 및 파일 시스템과 구별 할 수없는 레지스트리 및 파일 시스템의 가상화 된 뷰와 상호 작용합니다.”

한계

관련 : Windows 참가자가되고 새로운 Windows 10 기능을 테스트하는 방법

여기에는 몇 가지 중요한 제한 사항이 있습니다. 먼저 Windows 10 1 주년 업데이트에서만이 작업을 수행 할 수 있습니다. 지금은 Windows 10 Insider Preview 빌드 14316 이상에서 작동하므로 Windows Insider 프로그램에 참여하고 Windows 10의 Insider Preview 빌드를 사용해야합니다.

이 기능에는 Windows 10 Professional 또는 Enterprise 버전도 필요합니다. Windows 10 Home 사용자는 Desktop App Converter를 사용할 수 없습니다. 143143 빌드 기준으로 Windows 10 Enterprise에서만 작동했지만 Windows 10 Professional에 대한 지원이 제공됩니다. 현재이 도구는 64 비트 버전의 Windows에서만 사용할 수 있으며 결과 AppX 패키지는 64 비트 버전의 Windows에만 설치할 수 있습니다. 이것은 향후 Windows 10의 내부자 빌드에서 변경 될 것입니다.

결과 응용 프로그램은 Windows 10 PC 용입니다. Windows 10 Mobile 스마트 폰, Xbox One, HoloLens, Surface Hub 및 UWP 앱을 실행하는 다른 Windows 10 플랫폼에서는 작동하지 않습니다. 그러나 개발자 인 경우 Microsoft는 데스크톱 응용 프로그램을 플랫폼 간 UWP 응용 프로그램으로 가져 오는 경로를 제공합니다.“모든 응용 프로그램 기능을 응용 프로그램의 완전 신뢰 분할 영역에서 앱 컨테이너 파티션을 사용하면 모든 Windows 10 장치에서 앱을 실행할 수 있습니다. “

그러나 일부 유형의 응용 프로그램 동작은 지원되지 않습니다. 응용 프로그램은 관리자 권한으로 실행하거나 다른 유형의 저수준 시스템 액세스를 사용할 필요가 없습니다. Microsoft는 허용되지 않는 동작 목록을 제공합니다.

데스크톱 앱 변환기를 설정하는 방법

충분히 새로운 Windows 10 Insider Preview 빌드를 사용한다고 가정하면 Microsoft 개발자 사이트에서 Desktop App Converter를 다운로드하여 설치할 수 있습니다. DesktopAppConverter.zip 및 BaseImage-14316.wim 파일을 모두 다운로드하십시오. 다운로드 한 DesktopAppConverter.zip 파일을 컴퓨터의 폴더에 추출하고 BaseImage 파일을 동일한 디렉토리에 배치하십시오. 새 Windows 10 빌드를 사용할 수있는 경우 새 BaseImage 파일이 표시됩니다. 설치된 Windows 10 빌드와 동일한 버전 번호를 가진 BaseImage 파일을 사용해야합니다.

또한 Windows 10 SDK를 다운로드하여 설치해야합니다.

그런 다음 관리자로 PowerShell 창을 엽니 다. 이렇게하려면 시작 메뉴를 열고 “PowerShell”을 검색 한 다음 바로 가기를 마우스 오른쪽 단추로 클릭하고 “관리자 권한으로 실행”을 선택하십시오.

다음 명령을 실행하여 PowerShell의 실행 정책을 변경하십시오. 입력하여 변경 사항에 동의 y 나중에.

Set-ExecutionPolicy bypass

아래 명령을 실행하여 C:UsersNAMEDownloadsDesktopAppConvertor 컴퓨터의 디렉토리 경로와 함께 :

cd -Path C:UsersNAMEDownloadsDesktopAppConvertor

다음 명령을 실행하여 Desktop App Converter를 설정하십시오.

.DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim

이러한 명령을 실행하는 동안 재부팅하라는 메시지가 표시되면 컴퓨터를 재부팅 한 다음 명령을 다시 실행하십시오.

데스크톱 응용 프로그램을 변환하는 방법

이제 실행할 수 있습니다 DesktopAppConverter.ps1 단일 명령으로 데스크톱 응용 프로그램을 UWP 응용 프로그램으로 변환하는 관리자 PowerShell 창의 스크립트. 이렇게하려면 응용 프로그램의 설치 관리자가 필요합니다. 예를 들어 여기에서는 VLC를 사용합니다.

자세한 옵션 목록을 보려면 언제든지 다음 명령을 실행할 수 있습니다.

get-help .DesktopAppConverter.ps1 -detailed

응용 프로그램을 사용하고 조정할 수있는 명령은 다음과 같습니다.

.DesktopAppConverter.ps1 -ExpandedBaseImage C:ProgramDataMicrosoftWindowsImagesBaseImage-14316
 –Installer C:InstallerMyApp.exe -InstallerArguments "/S" -Destination C:OutputMyApp
 -PackageName "MyApp" -Publisher "CN=" -Version 0.0.0.1 -MakeAppx -Verbose

게시자 이름, 버전, 패키지 이름을 추가하고 원하는 설치 관리자 파일 및 대상 디렉토리를 가리 키도록 명령을 조정해야합니다. 그만큼 -InstallerArguments "/S" 여기서 옵션은 /S 설치 프로그램으로 전환하면 많은 응용 프로그램 설치 프로그램이 사용자 입력없이 자동 설치됩니다. 응용 프로그램은 사용자 입력없이 설치 가능해야합니다. 그렇지 않으면 변환 할 수 없습니다.

설치 프로그램과 동일한 디렉토리에있는 파일은 결과 .appx 패키지에 복사되므로 응용 프로그램의 설치 프로그램은 다른 파일없이 자체 디렉토리에 있어야합니다.

예를 들어 여기에서는 VLC를 사용하고 있으므로 다음과 같은 명령을 사용합니다.

.DesktopAppConverter.ps1 -ExpandedBaseImage C:ProgramDataMicrosoftWindowsImagesBaseImage-14316
 –Installer C:UserschrisDownloadsvlcvlc-2.2.2-win32.exe -InstallerArguments "/S" -Destination C:OutputVLC
 -PackageName "VLC" -Publisher "CN=VideoLAN" -Version 0.2.2.2 -MakeAppx -Verbose

이 도구는 앱의 UWP 버전 인 .appx 패키지를 제공합니다.

서명하지 않고 앱을 설치하는 방법

설치하기 전에 일반적으로 유효한 서명으로 앱에 서명해야합니다. 자체 서명 된 인증서를 만들고 컴퓨터에서 해당 인증서로 앱에 서명하는 것이 좋습니다. 원하는 경우 아래 지침을 사용하여이를 수행 할 수 있습니다.

그러나 자신의 컴퓨터에 앱을 설치하려는 경우 서명을 엉망으로 만들지 않고 더 빠르게 할 수 있습니다. Windows 10에서는 디렉토리에서 “패키지되지 않은”앱을 설치하는 경우 서명없이 앱을 설치할 수 있습니다.

이렇게하려면 관리자로 PowerShell 창을 열고 다음 명령을 실행하십시오.

Add-AppxPackage -Path C:PathtoAppxManifest.xml -Register

지정한 출력 디렉토리에서 Application.appx 파일 옆에 AppxManifest.xml 파일이 있습니다.

이제 시작 메뉴에서 응용 프로그램을 시작할 수 있습니다. “데스크톱 앱”대신“Windows 앱”이지만 일반 데스크톱 앱처럼 보이고 작동합니다.

앱 서명 및 설치 방법

이미 응용 프로그램을 설치 한 경우이 지침을 따를 필요가 없습니다. 이것은 더 어려운 방법입니다.

유효한 서명이있는 경우 일반적으로 .appx 패키지 만 설치할 수 있습니다. “Windows 10 SDK에 포함 된 signtool.exe 응용 프로그램을 사용하여 자체 서명 된 인증서를 만들어 자신의 컴퓨터에 응용 프로그램을 설치하고 테스트 할 수 있습니다.

관리자 권한으로 명령 프롬프트 창을 열고 다음 명령을 실행하여 자체 서명 인증서를 작성하고 .appx 패키지에 서명하십시오.

cd "C:Program Files (x86)Windows Kits10binx64"
MakeCert.exe -r -h 0 -n "CN=Publisher" -eku 1.3.6.1.5.5.7.3.3 -pe -sv my.pvk my.cer
pvk2pfx.exe -pvk my.pvk -spc my.cer -pfx my.pfx
signtool.exe sign -f my.pfx -fd SHA256 -v C:Pathtoapplication.appx

지정한 게시자는 "CN=Publisher" –AppX 파일을 만들 때 이전에 지정한 게시자와 일치해야합니다. 위의 VLC 예제를 계속해서 사용하려면 "CN=VideoLAN" .

비밀번호를 입력하라는 메시지가 표시됩니다. 비밀번호를 비워 둘 수 있습니다.

이제 Add-AppxPackage 명령을 사용하여 PowerShell (관리자) 창에 .appx 패키지를 설치할 수 있습니다.

Add-AppxPackage C:Pathtoapplication.appx

이 기능은 누구나 사용할 수 있지만 개발자 및 일부 시스템 관리자 만이 경로를 사용하려고합니다. 다행히 개발자에게는 프로세스가 매우 쉽습니다.