セットアップ実行画面ClickOnceで作成したsetup.exeの実行画面。ゲーム実行に必要なランタイムをチェックしてインストールを促す。
◎XNA実行環境の問題前回記事のコメントで、とくめーさんからXNA3.0が「
ClickOnce」に対応していることを教えて頂きました。
昨年「
XNA実行環境の問題について」に記述した通り、XNA実行環境には3つの問題があると考えていましたが、そのうちの1つ(ランタイムの問題)が改善されたようです。
とある事情により、サブPC(XNA3.0未導入)上でXNA3.0ゲームの動作テストを実施する必要が生じたので、これを機にClickOnceを試してみます。
◎試してみるこちらの記事を参照しながら「プロジェクトの発行」を行い、生成されたsetup.exeをサブPCで実行すると、ランタイムのインストール画面が表示されました。
インストールに同意するとランタイムのインストールが開始されましたが、ここでわざとキャンセルすると、セットアップの中断処理が実施され、セットアップがキャンセルされました。ここまでは想定通りです。
ところが、setup.exeを再度実行すると…セットアップがまともに動きません(異常終了)。
サブPCの状態を確認すると、スタートメニューにはゲームが登録済、‘プログラムの追加と削除’にはXNA Framework3.0とゲームが登録済の状態でした。
どうやら、先程のセットアップ中断処理が中途半端で、レジストリ関係がクリアされずに残ってしまったようです。しっかりしてくれ〜!>MS社
◎動きません‘プログラムの追加と削除’からXNA Framework3.0とゲームを自分で削除し、セットアップを実行すると、セットアップは正常に動作し、インストールが完了しました。
これで直ったかな、と思いつつゲームを実行すると…何故か動きません。興味本位でキャンセルテストなんかやらなきゃ良かった…。
試しに、ゲームプログラム開発元の\bin\x86\ReleaseフォルダをサブPCにコピーしてexeファイルを実行すると、正常に動作しました。ランタイムは問題無くインストールされたようですね。
スタートメニューに登録されたゲームの呼び出し元(先?)を確認すると、最初の発行時に作成した「〜.application」が呼び出されてました。つまり「ClickOnceは、Releaseフォルダの〜.exeファイルとは別のものを配布する」ということです。
◎まとめ当初の目的である「サブPCでのゲーム動作テスト準備(実行環境構築)」は達成されたため、中途半端ですみませんが、ClickOnceの検証はここまでとします。
…これ以上踏み込むとハマりそうで怖い(笑)
結局、ClickOnceで配布したゲームは未だに動きませんが、これは「セットアップの中断処理がたまたま誤動作したため」と思い込むことにしますw
まぁ、セットアップ中にキャンセルするケースなど稀でしょうから、その点はあまり心配していません。
しかし1つ覚えておきたいのは「何かトラブって一度ゲームが起動しなくなると、削除&再インストールでも動かないケースがある」ということです。
もしユーザからこのような報告を受けた場合は、下手にレジストリや配置マニフェスト(詳細は
こちら)の修正を図るよりも、exeファイルを個別に配信した方が賢明と思います。
◎次回予告ClickOnceが全く問題無いようなら、3Dテストプログラムの配布モジュールもこれで作り直そうと思っていたのですが、今回は見送りですね〜。
ClickOnceはいずれまた扱うつもりですので、その時は踏み込んで検証します。
次回は「遅延対策案の再検討」です。
テーマ : ゲーム製作 関連 - ジャンル : ゲーム
コメントの投稿