しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Windows Phone 8.1 アプリで多言語対応するとパッケージのバージョンがおかしくなる件

最近は Windows Phone 8.1 アプリの多言語対応を試していたのですが、WPF の時よりも圧倒的に簡単になっていてとても良いと思いました。

Windows Phone 8.1 for Developers – Localizing Apps | Jayway

x:Uid を使ってリソースと簡単に関連付けられるのは便利です。同じ x:Uid を使うとしても WPF だと LocXAML とかサンプルコードに毛の生えたようなツールを使って行う必要があるとか、正直なところ意味が分かりませんでしたからね。

しかし、Visual Studio でリソースを含んだストア用のパッケージを作ると、何故かパッケージのバージョンがおかしくなる現象に遭遇しました。

f:id:shiba-yan:20140923134656p:plain

マニフェストにはそんなバージョン指定していないのですが、いきなり日付ベースのバージョンになるとか困りましたね。もしかしたら、ストアに公開した時には正しいバージョンになるのかと思って、そのまま申請を進めてみました。

途中で警告が出ました。よく見たら今までは appx だったのが appxbundle という別の拡張子になってます。こいつがバージョンが狂った原因のようですね。

f:id:shiba-yan:20140923134718p:plain

そのまま申請を行いましたが、パッケージのバージョンが正常に戻る気配はありません。

f:id:shiba-yan:20140923134731p:plain

そして申請が通り、新バージョンが公開されましたがバージョンはそのままでした。残念です。

f:id:shiba-yan:20140923140107p:plain

原因が appxbundle にあるのなら、作成しないようにすればいいのではないかと思ったので、実際に別のアプリケーションで試してみました。

appxbundle を作らないようにするための設定は、パッケージ作成ダイアログにあります。

f:id:shiba-yan:20140923141008p:plain

翻訳がおかしいっぽいですが、表示しないを選ぶと普通の appx が作成されるようになります。

実際にアップロードしてみると正しいバージョンが表示されました。これなら問題なく使えそうです。

f:id:shiba-yan:20140923140855p:plain

ちなみに appxbundle でアップしてしまった場合には、この方法は使えなくなるので注意。

f:id:shiba-yan:20140923135137p:plain

多分 appxbundle を作る部分のバグだと思います。