と Windows10のアニバーサリーアップデート 、Microsoftは、開発者が従来のWindowsデスクトップアプリケーションをユニバーサルWindowsプラットフォーム(UWP)アプリケーションに変換できるようにしています。しかし、開発者だけでなく、誰でもどのアプリでもこれを行うことができます。
Windows 10のコンバーターでは、.msiまたは.exeファイルを指定するだけで、.appxパッケージが出力されます。次に、このアプリを自分のPCにサイドロードできます。または、アプリケーションの開発者の場合は、作成されたUWPアプリをWindowsストアに送信できます。この機能は、Windows10のアニバーサリーアップデートを使用するすべての人に提供されます。 多くの「レガシー」アプリケーションをWindowsストアに持ち込む 。
なぜあなたはこれをしたいのですか
関連: Windows10のアニバーサリーアップデートの新機能
この機能は、MicrosoftのProject Centennialの最終成果であり、これらの「レガシー」Win32および.NETWindowsデスクトップアプリケーションをWindowsストアと新しいユニバーサルWindowsプラットフォームに導入するように設計されています。
なぜ誰かがデスクトップアプリケーションを新しいUWPアプリに変換したいと思うのか不思議に思うかもしれません。 1つには、Windowsストアで許可されているのはUWPアプリのみです。これにより、開発者は、シングルクリックインストール、簡単な購入、自動更新は言うまでもなく、アプリにもっと目を向けることができます。
Microsoftの新しいUWPアプリケーションプラットフォームはサンドボックス化されていますが、変換するデスクトップアプリはサンドボックス化されていません。これらのアプリケーションは、従来のデスクトップアプリケーションと同様に、システムに完全にアクセスできます。なので Microsoftのドキュメント 「UWPアプリとして、アプリは従来のデスクトップアプリとして実行できることを実行できます。実際のレジストリおよびファイルシステムと区別がつかない、レジストリおよびファイルシステムの仮想化されたビューと相互作用します。」
制限事項
関連: Windows Insiderになり、Windows10の新機能をテストする方法
ここにはいくつかの重要な制限があります。まず、これはWindows 10 AnniversaryUpdateでのみ実行できます。今のところ、Windows 10 InsiderPreviewで動作します ビルド14316 以上なので、WindowsInsiderプログラムに参加して Windows10のInsiderPreviewビルドを使用する 。
この機能には、Windows10のProfessionalエディションまたはEnterpriseエディションのいずれかも必要です。Windows10Homeユーザーは、Desktop AppConverterを使用できません。ビルド14316の時点では、Windows 10 Enterpriseでのみ機能していましたが、Windows 10Professionalのサポートが開始されます。現在、このツールは64ビットバージョンのWindowsでのみ使用でき、結果のAppXパッケージは64ビットバージョンのWindowsにのみインストールできます。これは、Windows10の将来のInsiderビルドで変更されます。
結果として得られるアプリケーションは、Windows 10PCを対象としています。 Windows 10 Mobileスマートフォン、Xbox One、HoloLens、Surface Hub、およびUWPアプリを実行するその他のWindows10プラットフォームでは機能しません。ただし、開発者の場合、Microsoftは、デスクトップアプリケーションをクロスプラットフォームのUWPアプリケーションに移行する方法を提供しています。「アプリのすべての機能をアプリの完全信頼パーティションからに移動することを選択した場合アプリコンテナパーティションを使用すると、アプリは任意のWindows10デバイスで実行できるようになります。」
ただし、一部の種類のアプリケーションの動作はサポートされていません。アプリケーションは、管理者として実行したり、他の種類の低レベルのシステムアクセスを使用したりする必要はありません。マイクロソフトは、のリストを提供しています 許可されていない行動 。
デスクトップアプリコンバーターを設定する方法
Windows 10 Insider Previewの十分に新しいビルドを使用していると仮定すると、ダウンロードしてインストールできます。 デスクトップアプリコンバーター Microsoftの開発者サイトから。 DesktopAppConverter.zipファイルとBaseImage-14316.wimファイルの両方をダウンロードします。ダウンロードしたDesktopAppConverter.zipファイルをコンピューター上のフォルダーに解凍し、BaseImageファイルを同じディレクトリに配置します。 (利用可能なWindows 10の新しいビルドがある場合は、新しいBaseImageファイルが表示されます。インストールされているWindows 10のビルドと同じバージョン番号のBaseImageファイルを使用する必要があります。)
また、ダウンロードしてインストールする必要があります Windows 10 SDK 。
次に、管理者としてPowerShellウィンドウを開きます。これを行うには、[スタート]メニューを開き、「PowerShell」を検索し、そのショートカットを右クリックして、「管理者として実行」を選択します。
次のコマンドを実行して、PowerShellの実行ポリシーを変更します。次のように入力して変更に同意します
Y
その後。
Set-ExecutionPolicyバイパス
以下のコマンドを実行して、置き換えます
C:\ Users \ NAME \ Downloads \ DesktopAppConvertor
コンピュータ上のディレクトリへのパスを使用して:
cd -Path C:\ Users \ NAME \ Downloads \ DesktopAppConvertor
次のコマンドを実行して、Desktop AppConverterをセットアップします。
。\ DesktopAppConverter.ps1 -Setup-BaseImage。\ BaseImage-14316.wim
これらのコマンドの実行中に再起動するように求められた場合は、コンピューターを再起動してから、コマンドを再実行してください。
デスクトップアプリケーションを変換する方法
これで、を実行できます
DesktopAppConverter.ps1
管理者のPowerShellウィンドウからのスクリプトで、デスクトップアプリケーションをUWPアプリケーションに1つのコマンドで変換します。これを行うには、アプリケーションのインストーラーが必要です。例として、ここではVLCを使用します。
オプションの詳細なリストを表示するには、いつでも次のコマンドを実行できます。
get-help。\ DesktopAppConverter.ps1-detailed
アプリケーションに合わせて使用および調整できるコマンドは次のとおりです。
。\ DesktopAppConverter.ps1 -ExpandedBaseImage C:\ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 –インストーラーC:\ Installer \ MyApp.exe -InstallerArguments "/ S" -Destination C:\ Output \ MyApp -PackageName "MyApp" -Publisher "CN = <publisher_name>" -Version 0.0.0.1 -MakeAppx -Verbose
コマンドを調整して、独自の発行元名、バージョン、パッケージ名を追加し、希望するインストーラーファイルと宛先ディレクトリを指定する必要があります。ザ・
-InstallerArguments "/ S"
ここでのオプションは
/ S
インストーラーに切り替えると、多くのアプリケーションインストーラーがユーザー入力なしでサイレントインストールされます。アプリケーションは、ユーザー入力なしでインストール可能である必要があります。そうしないと、アプリケーションを変換できません。
アプリケーションのインストーラーは、他のファイルがない独自のディレクトリにある必要があります。インストーラーと同じディレクトリにあるファイルは、結果の.appxパッケージにコピーされるためです。
たとえば、ここではVLCを使用しているので、使用するコマンドは次のとおりです。
。\ DesktopAppConverter.ps1 -ExpandedBaseImage C:\ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 –インストーラーC:\ Users \ chris \ Downloads \ vlc \ vlc-2.2.2-win32.exe -InstallerArguments "/ S" -Destination C:\ Output \ VLC -PackageName "VLC" -Publisher "CN = VideoLAN" -Version 0.2.2.2 -MakeAppx -Verbose
このツールは、アプリのUWPバージョンである.appxパッケージを提供します。
署名せずにアプリをインストールする方法
通常、アプリをインストールするには、有効な署名を使用してアプリに署名する必要があります。自己署名証明書を作成し、それを使用してコンピューターでアプリに署名することをお勧めします。必要に応じて、以下の手順を使用してこれを行うことができます。
ただし、自分のパソコンにアプリをインストールするだけの場合は、署名をいじることなく、自分ですばやくインストールできます。 Windows 10では、ディレクトリから「パッケージ化されていない」アプリをインストールする場合、アプリに署名せずにアプリをインストールできます。
これを行うには、管理者としてPowerShellウィンドウを開き、次のコマンドを実行します。
Add-AppxPackage -Path C:\ Path \ to \ AppxManifest.xml -Register
指定した出力ディレクトリのApplication.appxファイルの横にAppxManifest.xmlファイルがあります。
これで、スタートメニューからアプリケーションを起動できます。 「デスクトップアプリ」ではなく「Windowsアプリ」になりますが、それ以外は通常のデスクトップアプリのように見え、動作します。
アプリに署名してインストールする方法
アプリケーションをすでにインストールしている場合は、これらの手順に従う必要はありません。これは難しい方法です。
通常、.appxパッケージは、有効な署名がある場合にのみインストールできます。 Windows 10 SDKに含まれているsigntool.exeアプリケーションを使用して自己署名証明書を作成することをお勧めします。これにより、アプリケーションを自分のコンピューターにインストールしてテストできます。
管理者としてコマンドプロンプトウィンドウを開き、次のコマンドを実行して自己署名証明書を作成し、それを使用して.appxパッケージに署名するだけです。
cd "C:\ Program Files(x86)\ Windows Kits \ 10 \ bin \ x64"
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:\ Path \ to \ application.appx
指定する発行元に注意してください-それは
「CN =パブリッシャー」
–AppXファイルを作成するときに以前に指定した発行元と一致する必要があります。したがって、上記のVLCの例を続けると、使用する必要があります
「CN = VideoLAN」
。
パスワードの入力を求められます。パスワードは空白のままにしておくことができます。
Add-AppxPackageコマンドを使用して、PowerShell(管理者)ウィンドウに.appxパッケージをインストールできるようになりました。
Add-AppxPackage C:\ Path \ to \ application.appx
この機能は誰でも使用できますが、開発者、そしておそらく一部のシステム管理者だけがこのルートを使いたいと思うでしょう。幸いなことに、このプロセスは開発者にとって非常に簡単です。