なでしこ製ソフトをUWPに変換してみた【その1】

Windows 10 Sという、まるでWindows RTシリーズを思い出させるOSが先日、Microsoftによって発表された。

で、そのWindows 10 S(以降10 S)はUWPというスマホのようなアプリしかインストールできない仕様なのだ。
しかし、Windows RTと違う事。それは従来型ソフト(Win32/WPF)をUWPに変換する技術、「Desktop to Universal Windows Platform (UWP) Bridge」がMicrosoftからリリースされているという事である。

ただし、この変換されたものは完全なUWPではなく、UWPの皮をかぶったWin32/WPFソフトが故に、PC・Windowsタブレットのみで実行可能である。Windows 10 Mobileでは実行できない。
Windows 10 Sも、この移植されたUWPを実行することができるようである(2017/5/4現在)

さて、最初はmsi形式にしないと、面倒などの欠点だらけな「Desktop to Universal Windows Platform (UWP) Bridge」だったが、どうやら今はソフトのルートフォルダを指定して作成できると聞いたので、自作ソフトを変換してみることにしたのだ。

UWPに変換するメリットって?

UWPに変換すると、簡単な話、ソフトウェアをWindows Storeで配布することが出来る。アップデートの構造も何もかも、Microsoft任せに出来る利点まである。

また、UWPに変換されたアプリは下手な動作をすることが出来ない為、システム丸ごとを壊すってこともなくなる。

また、アンインストールも一発だ。ユーザも楽だね。

また、力や努力を重ねれば、完全なUWPにも変換できる。まぁ、これは個人的にはやる気はないが…

必要なこと、もの

  • 最低でも数GBの空き容量のあるWindows 10 Pro(x64)実行パソコン
  • Windows 10 SDK
  • Desktop App Converter (インストーラなしでも使えるようになりました)
  • Second Level Address Translation と ハードウェア支援による仮想化 に対応した64Bit CPU
  • (推奨) スペックが高い方が面倒じゃないからスペックは高めが推奨

手順

1.Desktop App ConverterをWindows Storeからダウンロードする

Desktop App Converterは、変換技術を搭載したソフトウェアで、本来はインストーラの入ったものに使う。

多くのサイトには、この「インストーラを使ったソフトウェア」の事しか書いていない。

しかし、そこに記載されているwimファイルのダウンロードは、「インストーラを使ったソフトウェア」の場合のみに必要になるのだ。つまり、ここで扱うインストーラの無いソフト(exeだけ)の場合、不要だ。

2.Windows 10 SDKを導入する

Windows 10 SDKはどうやっても導入しないといけないソフトウェア。こいつでAppx(UWPのインストーラ)を署名するらしい。まぁ、そんなに容量も取らないし、入れてもいいと思う。

3.変換したいソフトをCドライブ直下フォルダに配置

これは個人的にやった事。この先のパス指定が面倒だから。

4.Desktop App Converterを管理者権限で起動

管理者権限じゃないとエラー出すので、必ず管理者権限で。起動後はただのPowerShellが起動するが、エンターを押せばコマンド待機状態になる。分かりづらい仕様だね

その後、このようなコマンドを打ち込む。

DesktopAppConverter.exe -Installer {ソフトのディレクトリ} -AppExecutable {実行したいexe} -Destination {書き出し先のディレクトリ} -PackageName "{表示名}" -Publisher "CN={開発者名}" -Version 0.0.0.1

ここのVersionは、メジャー/マイナー/ビルド/リビジョンの4つの数字から構成されている。とりあえず、面倒なら1.0.0.0から始めるといいと思う。

ここでは、「C:¥DTunes」の「Main.exe」を変換したい場合の例のコマンドを書く。名前からわかるけど、DTunesだ。Ver 1.1の変換なので、1.1.0.0で変換する。

DesktopAppConverter.exe -Installer C:¥Dtunes¥ -AppExecutable Main.exe -Destination C:¥output¥ -PackageName "DTunes" -Publisher "CN=DoMiNa Soft" -Version 1.1.0.0

とこんな具合のコマンドで変換できる。

ちなみに、PackageNameで空白が含まれていると、変換の際にエラーを吐くことがある。その場合は、別の名前や空白を消したり、色々弄ってみる事を推奨する。

で、これで変換したソフトはどう出るか…というと、appxのファイルができているが、それがインストーラである。それをクリックすると…

これでインストーラは完成だ。

ただ、このままでは、まだインストールは出来ない。インストールを押しても、署名云々でインストールできないはずだ。次回の記事で署名を許可、インストールする方法を書こうと思う。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする