Windows 10 の Anniversary Update により、Microsoft は開発者が従来の Windows デスクトップ アプリケーションをユニバーサル Windows プラットフォーム (UWP) アプリケーションに変換できるようにしています。ただし、開発者だけでなく、誰でもどのアプリでもこれを行うことができます。
Windows 10 のコンバーターを使用すると、.msi または .exe ファイルを指定するだけで、.appx パッケージが吐き出されます。その後、このアプリを自分の PC にサイドロードすることも、アプリケーションの開発者の場合は、結果の UWP アプリを Windows ストアに送信することもできます。この機能は Windows 10 の Anniversary Update ですべての人に提供され、 多くの「レガシー」アプリケーションが Windows ストアに追加されます 。
これを行う理由
この機能は、Microsoft の Project Centennial の最終結果であり、これらの「レガシー」 Win32 および .NET Windows デスクトップ アプリケーションを Windows ストアおよび新しいユニバーサル Windows プラットフォームに導入することを目的としています。
なぜデスクトップ アプリケーションを新しい UWP アプリに変換しようとするのか不思議に思うかもしれません。まず、Windows ストアでは UWP アプリのみが許可されています。これにより、開発者はシングルクリックのインストール、簡単な購入、自動更新はもちろんのこと、アプリにさらに注目できるようになります。
Microsoft の新しい UWP アプリケーション プラットフォームはサンドボックス化されていますが、変換するデスクトップ アプリはサンドボックス化されていません。これらのアプリケーションは、従来のデスクトップ アプリケーションと同様に、システムに完全にアクセスできます。 Microsoft のドキュメント には次のように書かれています。「UWP アプリとして、アプリは従来のデスクトップ アプリとして実行できることを実行できます。実際のレジストリやファイル システムと区別できない、仮想化されたレジストリやファイル システムのビューと対話します。 」
限界
ここには重要な制限がいくつかあります。まず、これは Windows 10 Anniversary Update でのみ実行できます。現時点では、Windows 10 Insider Preview ビルド 14316 以降で動作するため、Windows Insider プログラムに参加し、 Windows 10 の Insider Preview ビルドを使用する 必要があります。
この機能には、Windows 10 の Professional または Enterprise エディションも必要です。Windows 10 Home ユーザーは、Desktop App Converter を使用できません。ビルド 14316 の時点では、Windows 10 Enterprise でのみ動作していましたが、Windows 10 Professional のサポートが予定されています。現在、このツールは 64 ビット バージョンの Windows でのみ使用でき、作成された AppX パッケージは 64 ビット バージョンの Windows にのみインストールできます。これは、Windows 10 の将来の Insider ビルドで変更される予定です。
結果として得られるアプリケーションは、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 のバイパス
C:\Users\NAME\Downloads\DesktopAppConvertor
コンピューター上のディレクトリへのパスに置き換えて、以下のコマンドを実行します。
cd -パス C:\Users\NAME\Downloads\DesktopAppConvertor
次のコマンドを実行して、デスクトップ アプリ コンバーターをセットアップします。
.\DesktopAppConverter.ps1 -Setup -BaseImage .\BaseImage-14316.wim
これらのコマンドのいずれかの実行中に再起動を求められた場合は、コンピューターを再起動してからコマンドを再度実行します。
デスクトップ アプリケーションを変換する方法
管理者の PowerShell ウィンドウから
DesktopAppConverter.ps1
スクリプトを実行して、1 つのコマンドでデスクトップ アプリケーションを UWP アプリケーションに変換できるようになりました。これを行うには、アプリケーションのインストーラーが必要です。例として、ここでは VLC を使用します。
オプションの詳細なリストを表示するには、いつでも次のコマンドを実行できます。
get-help .\DesktopAppConverter.ps1 -detailed
アプリケーションに合わせて使用および調整できるコマンドを次に示します。
.\DesktopAppConverter.ps1 -ExpandedBaseImage C:\ProgramData\Microsoft\Windows\Images\BaseImage-14316
–インストーラー C:\Installer\MyApp.exe -InstallerArguments “/S” -宛先 C:\Output\MyApp
-PackageName “MyApp” -Publisher “CN=<publisher_name>” -バージョン 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” -バージョン 0.2.2.2 -MakeAppx -Verbose
このツールは、アプリの UWP バージョンである .appx パッケージを提供します。
署名せずにアプリをインストールする方法
通常、アプリをインストールするには、有効な署名を使用してアプリに署名する必要があります。 Microsoft では、自己署名証明書を作成し、それを使用してコンピューター上でアプリに署名することをお勧めします。必要に応じて、以下の手順に従ってこれを行うことができます。
ただし、アプリを自分のコンピューターにインストールするだけの場合は、署名をいじらずに、自分ですばやくインストールできます。 Windows 10 では、「パッケージ化されていない」アプリをディレクトリからインストールする場合、署名なしでアプリをインストールできます。
これを行うには、管理者として PowerShell ウィンドウを開き、次のコマンドを実行します。
Add-AppxPackage -Path C:\Path\to\AppxManifest.xml -Register
指定した出力ディレクトリの Application.appx ファイルの隣に AppxManifest.xml ファイルがあります。
これで、[スタート] メニューからアプリケーションを起動できるようになります。これは「デスクトップ アプリ」ではなく「Windows アプリ」になりますが、それ以外の点では通常のデスクトップ アプリと同じように見え、動作します。
アプリに署名してインストールする方法
アプリケーションをすでにインストールしている場合は、次の手順に従う必要はありません。これはより困難な方法です。
通常、.appx パッケージは、有効な署名がある場合にのみインストールできます。 Microsoft では、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 サイン -f my.pfx -fd SHA256 -v C:\Path\to\application.appx
指定する発行元 (つまり
"CN=Publisher"
は、AppX ファイルの作成時に前に指定した発行元と一致する必要があることに注意してください。したがって、上記の VLC の例を続けると、
"CN=VideoLAN"
を使用する必要があります。
パスワードの入力を求められます。パスワードは空白のままでも大丈夫です。
これで、PowerShell (管理者) ウィンドウで Add-AppxPackage コマンドを使用して .appx パッケージをインストールできるようになりました。
Add-AppxPackage C:\Path\to\application.appx
この機能は誰でも使用できますが、この方法を使用したいと思うのは開発者 (およびおそらく一部のシステム管理者) だけです。幸いなことに、開発者にとってこのプロセスは非常に簡単です。





