WinRTは「Windowsストア・アプリのためだけの実行環境とライブラリ」ではない?! デスクトップ・アプリからWinRTを使う方法を解説する。
powered by Insider.NET
Windowsランタイム(以降、WinRT)は、「Windowsストア・アプリのため実行環境とライブラリ」と理解する人が一般的である。イマーシブな(=没入型の)画面を持つアプリを作成するのに便利な機能を、WinRTが提供してくれるのは確かな事実である。しかし、Appxパッケージを追加するコマンドレットを提供することで、Windowsストア・アプリを管理する方法をデスクトップ環境にも用意している(詳細後述)のがWindows 8というOSだ。この事実を考えると、WinRTをデスクトップから使う方法もあるはずだと思い付くべきである。本稿では、デスクトップ・アプリからのWinRTの使い方を説明していくことにする。
本稿で説明する内容は、VS魂100連発の「VS100-015デスクトップアプリからWindows Runtimeを使用する」のビデオでも説明している技術内容を文章化したものである。また、この内容は、2012年11月の「MVP Open Day」というイベントでも説明している。もし、身近にMVPがいるのであれば、その人にさらに詳しく聞いていただきたい。
「Windowsランタイム(WinRT)とは何か」をひと言でいえば、「Windowsストア・アプリを動かすための実行環境(とライブラリ)」ということになる。この説明だけを見たら、従来型のデスクトップ・アプリの世界においては、WinRTは無用のものに感じられるかもしれない。
しかし、Windows 8というOSの位置付けを考えると、Windowsストア・アプリに関しても企業内で利用(グループポリシーによる管理)できなければならないはずだ。すなわち、Windowsストア・アプリを管理するための何らかの手段が企業向けに提供されているはずだと気が付くはずだ。事実として、次のような方法がPowerShellのコマンドレットとして提供されている(なお、PowerShellは、.NET Frameworkを基盤としたコマンドライン・ベースの管理ツールである)。
コマンドレット | 用途 |
---|---|
Add-AppxPackage | Windowsストア・アプリ(Appxパッケージ)のインストール |
Get-AppxLastError | Winddowsストア・アプリのインストール・ログから、最新のエラー情報を取得 |
Get-AppxLog | Winddowsストア・アプリのインストール・ログを取得 |
Get-AppxPackge | インストールされたWindowsストア・アプリの一覧を取得 |
Get-AppxPackageManifest | Windowsストア・アプリのアプリケーション・マニフェストを取得 |
Remove-AppxPackage | Windowsストア・アプリのアンインストール |
Windowsストア・アプリのインストール用PowerShellコマンドレット |
Windowsストア・アプリの開発者向けには、次のようなコマンドレットも提供されている。
コマンドレット | 用途 |
---|---|
Get-WindowsDeveloperLicense | Windows開発者ライセンス情報を取得 |
Show-WindowsDeveloperLicenseRegistration | Windows開発者ライセンスの登録を開始 |
Unregister-WindowsDeveloperLicense | Windows開発者ライセンスの削除 |
Windows開発者ライセンス用のPowerShellコマンドレット |
Windowsストア・アプリのインストール・パッケージには、Appxパッケージが使用される。Appxパッケージとは、OPC(Open Package Conventions)フォーマットのファイルを意味する。OPCフォーマットをひと言でいえば、Microsoft Officeのファイル・フォーマットである、OpenXMLで定められているファイルのパッケージング方法である。また、Appxパッケージはコード署名を持たなければならないという制約を持つ。
企業内のWindowsストア・アプリをインストールするためには、署名済みのAppxパッケージとサイド・ローディング用のプロダクト・キーが必要になる。ただし、開発者はWindows開発者ライセンスを使用することで、未署名のWindowsストア・アプリも実行できる(開発者ライセンスは、永続的なライセンスではなく一定期間のみ有効で、開発を続けるにはライセンスの継続的な更新が必要となる)。なお、本稿は、PowerShellのコマンドレットを説明することを目的としていない。よって、コマンドレットの使い方は自分で学習してほしい。
MSDNライブラリには次のWinRT関連ドキュメントがある。
これらのドキュメントから理解できることは、WinRTをデスクトップ・アプリから使えるということである。なぜなら、WinRTとは、
であるからだ*1。そして、「管理するためのライブラリ」という側面を実際に試す方法を説明することが、本稿の目的である。
*1 例えば、上記の「マネージデスクトップアプリとWindowsランタイム」には「新しいWindowsランタイムAPIを使う新しいマネージデスクトップアプリを作る……」という記述があることから、WinRTをデスクトップ・アプリから使用可能なことが分かる。
Copyright© Digital Advantage Corp. All Rights Reserved.