« [Metro Style] #Win8 #Metro の WinRT と .NET Framework と WinMD と Windows Store と… (ややこしいっ!!) | トップページ | Visual Studio 11 beta は Windows 8 beta と同時リリース! なんと、 TFS に Express 登場!! »

2012年2月 5日 (日)

[Metro Style] #Win8 #Metro のアプリケーション・パッケージ

Metro スタイル アプリケーションを配布するには、「パッケージ」にまとめます。
Windows Store を通さない場合でも、 パッケージにしなければならないようです。 (xcopy deploy とはいかないらしい。)

パッケージを作るには…

  • デジタル証明書が必要。 (テスト用の証明書なら、 Visual Studio で作成できる)
  • Windows Store にアップロードする場合と、そうでない場合とで作り方が違う。
  • パッケージのファイル名には、日本語は使えない。 収めるファイルにも使わない方が無難。

※ MSDN の次の資料も参照してください。 ⇒ Preparing your app for the Windows Store

 
◆ デジタル証明書の設定

Visual Studio で Metro スタイル アプリケーションを指定してプロジェクトを作ると、 フォルダ内に Package.appxmanifest というファイルが出来ています。 これをソリューション エクスプローラーから開くと、 その内容を編集する GUI 画面が開きます。 その中の [Packaging] タブで、 デジタル証明書の設定をします。
「Publisher:」 の右の方にある [Choose Certificate...] ボタンで、 「Choose Certificate」 ダイアログが出てきます。

20120204_metrostylepackage_choosece

[Configure Certificate...] ドロップダウンで、 デジタル証明書を選択します。

  • 正規のデジタル証明書を選択するには、 [Pick from certificate store...]
  • テスト用のデジタル証明書を作成するには [Create test certificate...]
    ※1回作成すれば、 次からは [Pick from certificate store...] で選択できます。

※ Windows Store に開発者として登録すれば、 デジタル証明書も手に入るはずです。 (まだオープンしていないので推測です。 たぶん、 Windows Phone Marketplace と同様でしょう。)

 
◆ パッケージの作成

ソリューション エクスプローラーでプロジェクトを右クリックし、 コンテキスト メニューから [Store] - [Create App Package...] を選ぶと、 「Build Package」 ダイアログが出てきます。

20120204_metrostylepackage_buildpac

上を選ぶと、 Windows Store 用のパッケージを作ってアップロードできはずですが、 いまのところまだ Windows Store がオープンしていないため、 先へ進めません。 (なお、 Windows Store へのアカウント登録には Live ID が使われます。)
下を選ぶと、 ローカルで (パッケージを持って行けば、 他の PC でも) インストールするためのパッケージを作成できます。 ウィザードに従って進めていけば、 指定場所 (デフォルトはプロジェクト配下の Packages フォルダ) にパッケージが出来上がります。

パッケージのルートフォルダ
20120204_metrostylepackage_packagef

.appxupload ファイルは、 Windows Store にアップロードするときに使うもの (…のはず。 なぜローカル用にも作成されるのか不明)。 バージョン番号が付されたサブフォルダに、 ローカル用のパッケージファイルが生成されています。

パッケージのサブフォルダ
20120204_metrostylepackage_packag_2

DbcsNameTest_1.0.0.4_AnyCPU_Debug.appx - パッケージ本体。 正体は zip ファイルで、 実行ファイルや xaml ファイル等が入っています。
DbcsNameTest_1.0.0.4_AnyCPU_Debug.cer - デジタル証明書。
Add-AppxDevPackage.bat - インストール用バッチファイル。
※ ファイル名中の "_Debug" は、 お察しの通り Release ビルドならば無くなります。

これら 3つのファイルを他の PC に持って行き、
1. .cer ファイルを右クリックして [Install Certificate] で、 証明書をインストール。
2. バッチファイルを実行。
という手順で、 インストールすることが出来ます。

 
◆ 日本語ファイル名

日本語の名前を付けたファイルを入れたパッケージを作り、 出来上がった .appx ファイルの中身を見てみましょう。

プロジェクト内に、 「芸1.xaml」 と 「表1.xmal」 という、 日本語ファイル名を用意しました。 (Shift JIS に直すと、 2バイト目が '|' や '\' になる)
20120204_metrostylepackage_japanese

出来上がった .aspx ファイルの拡張子を .zip に変えると、 その中身を見ることができます。
20120204_metrostylepackage_japane_2

なんと、 日本語ファイル名は、 UTF-8 に変換された上で、 % エンコーディングされているようです。 (jar ファイルではハマったような気がします …気のせいだっけ? f(^^;)
それでは、 バッチファイルを実行してインストールしてみます。

20120204_metrostylepackage_japane_3

無事にインストールできました! f(^^;

ただし、 インストーラー (バッチファイル) の制限なのか、 OS (Windows 8 DP) が英語版のせいなのかわかりませんが、 バッチファイル実行時にパッケージを置いてあるパスに日本語が入っていると、 失敗します。

※ 途中のフォルダ名に日本語が入っている例
20120204_metrostylepackage_japane_4

※ パッケージ名が日本語の例
20120204_metrostylepackage_japane_5

一応、 格納するファイルに日本語を使うのは大丈夫そうですが、 このようなことがあるとなると、 避けておいた方が無難だと思います。

|

« [Metro Style] #Win8 #Metro の WinRT と .NET Framework と WinMD と Windows Store と… (ややこしいっ!!) | トップページ | Visual Studio 11 beta は Windows 8 beta と同時リリース! なんと、 TFS に Express 登場!! »

プログラミング」カテゴリの記事

* プログラミング ( Metro スタイル )」カテゴリの記事

コメント

情報共有ありがとうございました。大変参考になりました

投稿: | 2012年10月25日 (木) 16時38分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Metro Style] #Win8 #Metro のアプリケーション・パッケージ:

« [Metro Style] #Win8 #Metro の WinRT と .NET Framework と WinMD と Windows Store と… (ややこしいっ!!) | トップページ | Visual Studio 11 beta は Windows 8 beta と同時リリース! なんと、 TFS に Express 登場!! »