トップ回答者
VS2012 テンプレートのエクスポートを使ってストアアプリを作成する場合について

質問
-
現在、Windows8(タッチパネル)にVisual Studio Professional 2012 を使用してストアアプリの開発を勉強しています。
作成したストアアプリを複製して新しいプロジェクトを作る(そこから手を加える)場合、[テンプレートのエクスポート](プロジェクト形式)を利用しています。
(1)他に良い方法がありますでしょうか?
エクスポートしたテンプレートを選択して新しいプロジェクトを作成した場合、通常の[Windowsストア]のテンプレートを選択して作成した場合とでは、VS2012上では特に違いがわからず、動作も正常なのですが、1点気になることがあります。
通常の[Windowsストア]のテンプレートを選択して作成した場合には、スタート画面(モダンスタイル)にアプリのタイル(グレーの×表示)が表示され、デスクトップ画面でVS2012を起動させなくても、アプリを起動することができます。(すべてローカルです。)
ところが、エクスポートしたテンプレートを選択して新しいプロジェクトを作成した場合には、タイルは表示されません。
(2)エクスポートしたテンプレートを選択して新しいプロジェクトを作成した場合でも、タイルを表示させる方法があるのでしょうか?
どうぞ宜しくお願い致します。
回答
-
エクスポートしたテンプレートに含まれる GUID が固定されたもの、つまりエクスポートした時点のプロジェクトと同じものが使われていませんか?
マニフェストやプロジェクトファイルに書かれている GUID が同一になっているのであれば、テンプレートを一度 zip 展開して、$guid1$ ~ $guid5$ など のようにランダムで生成するように置き換えが必要だと思います。おそらくは Package.appxmanifest の Identity タグの Name 属性に書かれている GUID が同一であることが引っかかっていると予想します。(確かめてません、すみません)
あとは、csproj(vbproj)にある ProjetGuid も別の GUID にしておきましょう。$guidN$ ですが、同じ番号を使ったところは同じ GUID になってしまうので、プロジェクト GUID とパッケージ GUID は別の GUID になるように $guid1$, $guid2$ のように使い分けてください。
その後、再度 zip 圧縮してそれをテンプレートとして使うようにしましょう。【例】
<ProjectGuid>{0F4D4AB7-458B-4A1F-A77B-D2D2F0ED6FAC}</ProjectGuid>
→ <ProjectGuid>$guid1$</ProjectGuid>
<Identity Name="13b2a26f-a304-4c4b-af90-ddb8fba814d1" Publisher="CN=Owner" Version="1.0.0.0" />
→ <Identity Name="$guid2$" Publisher="CN=Owner" Version="1.0.0.0" />
補足。
ProjectTypeGuids は書き換えません。書き換えるべきものを見極めるためには、ストアアプリの本来のテンプレートで 2 つプロジェクトを作って、差分を比較してみるとよいでしょう。
プロジェクトごとに違う GUID があれば、それはテンプレートでも毎回生成されるように $guid1$ などに置換が必要です。- 編集済み AzuleanMVP, Moderator 2013年2月10日 13:57
- 回答としてマーク kosato 2013年2月10日 16:05
すべての返信
-
エクスポートしたテンプレートに含まれる GUID が固定されたもの、つまりエクスポートした時点のプロジェクトと同じものが使われていませんか?
マニフェストやプロジェクトファイルに書かれている GUID が同一になっているのであれば、テンプレートを一度 zip 展開して、$guid1$ ~ $guid5$ など のようにランダムで生成するように置き換えが必要だと思います。おそらくは Package.appxmanifest の Identity タグの Name 属性に書かれている GUID が同一であることが引っかかっていると予想します。(確かめてません、すみません)
あとは、csproj(vbproj)にある ProjetGuid も別の GUID にしておきましょう。$guidN$ ですが、同じ番号を使ったところは同じ GUID になってしまうので、プロジェクト GUID とパッケージ GUID は別の GUID になるように $guid1$, $guid2$ のように使い分けてください。
その後、再度 zip 圧縮してそれをテンプレートとして使うようにしましょう。【例】
<ProjectGuid>{0F4D4AB7-458B-4A1F-A77B-D2D2F0ED6FAC}</ProjectGuid>
→ <ProjectGuid>$guid1$</ProjectGuid>
<Identity Name="13b2a26f-a304-4c4b-af90-ddb8fba814d1" Publisher="CN=Owner" Version="1.0.0.0" />
→ <Identity Name="$guid2$" Publisher="CN=Owner" Version="1.0.0.0" />
補足。
ProjectTypeGuids は書き換えません。書き換えるべきものを見極めるためには、ストアアプリの本来のテンプレートで 2 つプロジェクトを作って、差分を比較してみるとよいでしょう。
プロジェクトごとに違う GUID があれば、それはテンプレートでも毎回生成されるように $guid1$ などに置換が必要です。- 編集済み AzuleanMVP, Moderator 2013年2月10日 13:57
- 回答としてマーク kosato 2013年2月10日 16:05
-
Azuleanさん、コメントありがとうございます。
確かにPackage.appxmanifestの Identity タグの Name 属性に書かれている GUID は元のプロジェクトの内容のままになっていました。
コメントを参考にWebで検索していたところ、『プロジェクトと項目テンプレートのカスタマイズ』
//msdn.microsoft.com/ja-jp/library/ms247119.aspx
がありました。テンプレートの更新については『.vstemplate ファイルを検証』など、初心者の私には難しそうなので今回は見送りますが、疑問は解消しました。
どうもありがとうございました。
- 編集済み kosato 2013年2月10日 16:32