Desktop App Converter はどんな形であれ、インストーラさえ用意できれば、appx 化のための間口を用意してくれる優れものです。
ということで、究極の単純インストーラでもある、バッチファイルで実験してみました。
インストール対象は、毎度おなじみ MfcApp.exe(プログラムは、https://1drv.ms/u/s!AOVVWpjfPyA0hNsm からプロジェクトを取得してねw)。
今回は単純に実験なので、MfcApp.exe をコピーするだけの単純なプロジェクトで関連付けなどのレジストリ設定は一切ありません。
用意したバッチファイルもごく単純なもので、
@ECHO OFF
XCOPY Release\MfcApp.exe C:\Samples\MfcApp\
という内容です。
上記プロジェクトのソリューションフォルダに install.cmd という名前で用意しました。
まずは結論。
バッチファイルをインストーラにすることができます。
バッチファイルなので複数の処理も指定可能です。ユーザー入力を要求しない限りどのプログラムを実行しても問題なく実行できます(管理者権限を持って動作しているという前提になります)。
これで一気に敷居が下がりますね。
合わせて実験的ですが XCOPY コマンドを直接指定するなども行ってみましたが、これらは失敗してしまいました。
どうやら、システムフォルダはリダイレクトされてしまう関係でうまくいかないみたいです(フルパス指定じゃないとファイルがないって怒られる。。。)
そのほかの注意点は
XCOPY するだけで、ショートカットアイコンを作らないので判断材料がガクッと減ります。
そのため、プライマリアプリケーションがわかりませんので、AppExecutable が必須になります。
また、インストール先もわからないので、AppInstallPath がないとW_INSTALL_PATH_NOT_DISCOVERED という warning が出ます。
ということで、指定パラメータは
DesktopAppConverter ?Installer SampleDAC\Install.cmd ?Destination AppxOutput ?PackageName MfcApp ?AppExecutable C:\Samples\MfcApp\MfcApp.exe ?AppInstallPath C:\Samples\MfcApp ?Version 1.0.0.0 ?MakeAppx ?Verbose
という感じになります(見ながら打ち込んだのであってるかどうか自信ないわw)
これで、インストーラなんて作ったことないよ!という人でもサクッと作れますね。
ポイントは、
- 出力先は極力単純にする(typo防止策)
- 原則パラメータは全部省略できないと思うべし。
です。
あと、忘れがちですが、ここで出来上がるappx はインストーラです。当然作成環境とは異なる環境で動作するのでその点も忘れないようにしましょう。