環境構築ができたら、まずは簡単なインストーラを使ってコンバートの実験をしましょう。
非常に残念な話ですが、どの環境でもコンバートが成功するとは限りません。私物環境(14931)ではなぜかBSODが出るように。。。ひとつ前のIP(14926)から出るようになってしまったのですが、Hyper-V の入れ直し程度では復活しませんでした><
RTWしたやつからなので、何とも微妙ですが会社環境(14393)では動作するので、環境依存の何かなんでしょうねぇ。。。ほかに動かねーという情報も見ないし><
さて…気を取り直して。
PSコンソールを管理者で起動して、DesktopAppConverterの展開フォルダに移動します(ストア版でもOK)。
コマンドラインオプションはいろいろあるのですが、基本的なコンバート作業で利用するのは
-Installer インストーラのパス(相対パスまたはフルパス)
-Destination コンバート後のデータの出力先基本フォルダ
-PackageName UWPアプリのパッケージ名
-Publisher パブリッシャー情報(CN は必須。それ以外はオプション)
-Version パッケージのバージョン
の必須パラメータと
-MakeAppx コンバート時に自動的に appx まで作成(つけない場合は、appx に必要なファイルの作成まで。本番リリース向け環境では手動修正が必須なのでつけない)
-Sign appx作成時に自己証明書を作成してそれで署名してくれるオプション(実験専用)
-Verbose 作業状況のコンソールへのフィードバック(これがあると時間がかかる代わりに何をやっているかが一目瞭然)
の計8つ。それと、exe形式のインストーラのコンバートで利用する
-InstallerArguments インストーラをサイレントインストールで実行する場合のパラメータ(msiのサイレント用パラメータは自動でセットされる)
-InstallerValidExitCodes インストーラの成功終了時の終了コード(0以外で終了するexeなどで指定する)
というあたりでしょう。ほかにもありますが、複雑な製品攻勢になっていなければ、この程度でだいたいコンバートできます。
コマンドラインサンプルの実行例は(ストア版の場合 ps1 へのパスが通っているのでそのまま名前で変換可能)
.\DesktopAppConverter.ps1 -Installer ..\SampleDAC\SetupMfcApp\bin\Release\SetupMfcApp.msi -Destination ..\outputDAC -PackageName MfcApp -Publisher CN=Tocchann -Version 1.0.926.0 -MakeAppx -Verbose -Sign
という感じになります。
これを実行するとそのコンソール上で(ISEだと多少グラフィカルになります)、以下の項目を随時通知しながらコンバートが行われます。
- Checking Prerequisites
- Initializing AppxManifest.xml
- Validating Input
- Setting up Conversion Environment
- Running Installer in Isolated Environment
- Preparing Virtual File System
- Preparing known folder and application directory layout
- Preparing Virtual Registry
- Finalizing AppxManifest.xml
- Checking for Unsupported COM Usage
- Preparing Final Output
- Making Final Appx Package
- Signing Appx Package
成功すれば、最後に
Output Paths:
Name | Value |
---- | ----- |
CertPath | C:\Sample\outputDAC\MfcApp\auto-generated.cer |
PackageFilesPath | ..\outputDAC\MfcApp\PackageFiles |
PackagePath | ..\outputDAC\MfcApp\MfcApp.appx |
LogFilesPath | ..\outputDAC\MfcApp\logs |
という感じで出力されます(見やすいようにテーブル化していますが、実際はスペースでそろえてあるだけです)。
プレビューの時には、-MakeAppx をつけているとルートに配置されるファイルが PackageFilesPath に展開されなかったのですが、リリース版ではこれらも展開されます。
ここまでがごくごく簡単な作業手順です。