none
以前に作成したWindows 8 ストアアプリが動かなくなりました RRS feed

  • 質問

  • H27年3月13日

    お世話になります。下記のことで困っています。

    1.現象

    (1)(1)1年以上前に作成し、動作していたWindows8 ストアアプリが実行時エラーとなるので、リビルドすると、「指定された証明書は有効期限が切れています。証明書の更新の詳細については、http://go.microsoft.com/fwlink/?LinkID=241478 を参照してください。」というメッセージが表示されました。

    (2)(2)(1)項で表示されたURLを見ると、「証明書の更新」とか、「代替証明書の選択」の項目があるので、そこに記載されている操作を行ったところ、ビルド時の(1)項のメッセージは出なくなりましたが、やはりデバッグ実行時にエラーになります。

    (3)(3)「完全な証明書の表示」という項目を表示すると、「このCAルート証明書は信頼されていません。信頼を有効にするにはこの証明書を信頼されたルート証明機関のストアにインストールしてください。」と表示されます。

    当方はWindows8 ストアアプリ開発については全くの初心者で、何をどうしてよいかわかりません。

    古いプログラムを動くようにするには、どうすればよいのでしょうか。

    2.開発環境

    Windows 8.1 Pro.Visual Studio 2013 Pro.、開発言語はXAMLC++/CXです。

    以上、よろしくお願いします。


    • 編集済み fghck854 2015年3月12日 20:32 項目番号が抜けていた
    2015年3月12日 20:29

回答

  • > 「ハンドルされない例外が 0x75274598 (KernelBase.dll) で発生しました(picture5cpp_UI.exe 内): 0x00000004: ファイルを開くことができません。 (パラメーター: 0x80070005, 0x00000005)。」と表示され続行できません。

    これは本当に必要なファイルが違っているようですね (あるいは、他のプロセスに排他的に開かれているか)。
    デバッグ出力に、読み込めなかったファイル名は出ていませんか? (メニュー [デバッグ] - [ウィンドウ] - [出力]で出したペインのドロップダウンで [デバッグ] を選択、次の画像)

    そのアプリが以前からインストールされていた場合に、デバッグ開始時の「配置」(インストール) に失敗している可能性もあります。 次の削除手段を試してみるといいかもしれません。
    ・スタート画面でタイルを右クリックして [アンインストール]
    ・wsreset.exe (Windows ストアアプリのキャッシュをクリアする) - 「Windows ストアにアプリが見つからない (またはインストール) できない理由」の末尾に使用法
    ・Remove-AppxPackage (PowerShell を使って強制削除) - 「Windows 8 アプリのテストを自動化する 」の末尾に使用法

    また、出力されたファイルを新規に作ったプロジェクトの出力ファイルと見比べてみてください。
    デフォルトでは、ソリューションのあるフォルダの直下の「Debug」フォルダの下です (Win32 の場合)。

    あるいは、新規に作ったプロジェクトの方をストアに関連付けしてしまった方が早いかもしれませんね。
    ・関連付けの手順: 「連載:Windowsストア・アプリ開発入門:第12回 Windowsストアで公開する (3/8)」
    ただし、すでに登録済みのアプリと関連付けるので、「ストアとの関連付けを行うダイアログ(その4)」のところで [既にパッケージに使用されているアプリケーション名を含める] にチェックを入れて既存の名前を選びます。


    ※ 下部に「作成しているパッケージがこのアプリケーションの新しいリリースでない場合は、別のアプリケーション名を選択してください」という注意が出ています。逆に言えば、「作成しているパッケージがこのアプリケーションの新しいリリースである場合は、これでよい」ということです。


    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    • 回答としてマーク fghck854 2015年3月13日 21:03
    2015年3月13日 12:26

すべての返信

  • > やはりデバッグ実行時にエラーになります

    具体的に、いつどのようなエラーになるのでしょう?

    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    2015年3月13日 2:17
  • biac 様

    早速のご返信ありがとうございます。

    Visual Studio のメニューから「デバッグ」→「デバッグ開始」の操作を行うと、黒いバッテンが中央に表示されます。ここまでは正常ですが、そのあとすぐに「picture5cpp_UI.exe によってブレークポイントが発生しました。」というエラーのダイアログが表示されます。

    そのエラーダイアログで「OK」ボタンを押すと、ダイアログが消えて「wkernelbase.pdbは読み込まれていません」と表示されます。

    よろしくお願いします。


    • 編集済み fghck854 2015年3月13日 2:45 追記
    2015年3月13日 2:36
  • > 「wkernelbase.pdbは読み込まれていません」

    デバッグのオプションで、.pdbファイルの参照先として「Microsoft シンボル サーバー」にチェックは付いていますか?

    参照:
    ・MSDN forum: wkernelbase.pdb not loaded
    ・MSDN: シンボル (.pdb) ファイル、ソース ファイル、およびバイナリ ファイルの検索


    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    2015年3月13日 4:30
  • biac 様

    早速のご回答ありがとうございます。

    (1)ご指摘の「Microsoft シンボルサーバー」にチェックはついていませんでした。これにチェックをいれてリビルド、デバッグ実行したところ、やはり黒いバッテンのあとすぐに「picture5cpp_UI.exe によってブレークポイントが発生しました。」というエラーのダイアログが表示されます。そのあとが少し違って、「ソースは利用できません。このモジュールのデバッグ情報にはソース情報がありません。逆アセンブルウィンドウで・・・」などと表示されます。

    (2)ちなみに、プロジェクトを新規に作って、その中にエラーになる古いプロジェクトのコードをそのままいれてビルドすると、正常に動作します。「Microsoft シンボルサーバー」はチェックなしで、正常に動作しました。

    (3)マイクロソフトのページhttp://go.microsoft.com/fwlink/?LinkID=241478を見ると何やら作ったソフト(ストアアプリ)に有効期限のようなものがあり、例えば何もせず1年放置しておくと、ソフトの有効期限が切れて使えなくなるといったようなことはないのでしょうか。何もわからないで書いているので違っていたらごめんなさい。

    プロジェクトを作り直したりせずに、古いストアアプリを動かしたいのですが、その方法がわかりません。

    よろしくお願いします。

    2015年3月13日 5:16
  • > 「ソースは利用できません。このモジュールのデバッグ情報にはソース情報がありません。逆アセンブルウィンドウで・・・」などと表示されます。

    このエラーでしょうか? > MSDN: 使用できるソースはありません

    これならば、[▶続行] ボタン (F5 キー) で実行を継続できると思います。

    問題は、ソースコードが無いところでブレークすることでしょう。
    おそらくそれは、「マイコードのみを有効にする」という設定が OFF になっているためではないかと思います (デフォルトは ON です)。

    ※ これで解決しましたら、「Microsoft シンボルサーバー」のチェックは外してください


    > 例えば何もせず1年放置しておくと、ソフトの有効期限が切れて使えなくなるといったようなことはないのでしょうか

    はい、動かなくなります (ストアからインストールした場合は別です)。
    それに対処するための操作が、そのページの「証明書の更新」作業です。


    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    2015年3月13日 7:23
  • すみません、ソースコードが無いところでブレークするのは、次の設定も直さないといけないような気がしてきました。

    通常はデバッグしなくてもよい例外でブレークするように設定していることが考えられます。[▶続行] ボタン (F5 キー) で実行を継続できた場合は、その可能性が高いでしょう。

    Visual Studio は、どのような例外が出たときにブレークするかを設定できます。
    MSDN: 方法 : 例外がスローされたときに中断する

    [スローされるとき] にチェックが付いている例外は、発生したら必ずブレークします。
    [ユーザーにハンドルされていないとき] は、発生した例外をユーザープログラム (=書いたコード) で try ~ catch しなかった場合にブレークします。

    このダイアログの右にある [すべてリセット] ボタンを使って初期状態に戻してみてはどうでしょう?


    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    2015年3月13日 7:36
  • biac 様

    (1)「ソースは利用できません。・・・」の表示は送っていただいた画像の通りです。

    ですが、F5キーで続行すると、またエラーダイアログが出て、

    「ハンドルされない例外が 0x75274598 (KernelBase.dll) で発生しました(picture5cpp_UI.exe ): 0x00000004: ファイルを開くことができません。 (パラメーター: 0x80070005, 0x00000005)。」と表示され続行できません。

    (2)「マイコードのみ有効にする」はチェックがついていました。

    (3)「例外が次の場合に中断する」のダイアログで「すべてリセット」を押しましたが、何も設定は変わらないようです。初期状態の設定だったようです。

    この操作を行っても、やはり同じエラーが出ました。

    2015年3月13日 7:56
  • biac 様

    「証明書の更新」の操作を行っても、「完全な証明書の表示」ボタンを押すと、下図のように「信頼されていません」などと表示されるのですが、これは問題ないのでしょうか。


    • 編集済み fghck854 2015年3月13日 8:25 画像追加
    2015年3月13日 8:20
  • > 「ハンドルされない例外が 0x75274598 (KernelBase.dll) で発生しました(picture5cpp_UI.exe 内): 0x00000004: ファイルを開くことができません。 (パラメーター: 0x80070005, 0x00000005)。」と表示され続行できません。

    これは本当に必要なファイルが違っているようですね (あるいは、他のプロセスに排他的に開かれているか)。
    デバッグ出力に、読み込めなかったファイル名は出ていませんか? (メニュー [デバッグ] - [ウィンドウ] - [出力]で出したペインのドロップダウンで [デバッグ] を選択、次の画像)

    そのアプリが以前からインストールされていた場合に、デバッグ開始時の「配置」(インストール) に失敗している可能性もあります。 次の削除手段を試してみるといいかもしれません。
    ・スタート画面でタイルを右クリックして [アンインストール]
    ・wsreset.exe (Windows ストアアプリのキャッシュをクリアする) - 「Windows ストアにアプリが見つからない (またはインストール) できない理由」の末尾に使用法
    ・Remove-AppxPackage (PowerShell を使って強制削除) - 「Windows 8 アプリのテストを自動化する 」の末尾に使用法

    また、出力されたファイルを新規に作ったプロジェクトの出力ファイルと見比べてみてください。
    デフォルトでは、ソリューションのあるフォルダの直下の「Debug」フォルダの下です (Win32 の場合)。

    あるいは、新規に作ったプロジェクトの方をストアに関連付けしてしまった方が早いかもしれませんね。
    ・関連付けの手順: 「連載:Windowsストア・アプリ開発入門:第12回 Windowsストアで公開する (3/8)」
    ただし、すでに登録済みのアプリと関連付けるので、「ストアとの関連付けを行うダイアログ(その4)」のところで [既にパッケージに使用されているアプリケーション名を含める] にチェックを入れて既存の名前を選びます。


    ※ 下部に「作成しているパッケージがこのアプリケーションの新しいリリースでない場合は、別のアプリケーション名を選択してください」という注意が出ています。逆に言えば、「作成しているパッケージがこのアプリケーションの新しいリリースである場合は、これでよい」ということです。


    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    • 回答としてマーク fghck854 2015年3月13日 21:03
    2015年3月13日 12:26
  • > 「完全な証明書の表示」ボタンを押すと、下図のように「信頼されていません」などと表示される

    証明書の発行者が自分になっていますよね。それで正常です。新しく作成したプロジェクトのものも見てください。
    次の画像は、私が先ほど新しく作ったプロジェクトの証明書です。

    いわゆる「オレオレ証明書」なわけすが、これで開発を進めます。
    ストアで公開されるときには、ストアの側で正規の証明書を使って署名し直されます。

    ※ 「サイドローディング」といって、ストアを通さずに配布する場合には、組織で取得した正規の証明書を与えなければなりません。


    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    2015年3月13日 12:35
  • biac 様

    >デバッグ出力に、読み込めなかったファイル名は出ていませんか?

    デバッグ出力は次のようになっています。読み込めないファイルの名前は表示されていません。

    picture5cpp_UI.exe によってブレークポイントが発生しました。

    初回例外が 0x75274598 (KernelBase.dll) で発生しました (picture5cpp_UI.exe ): 0x00000004: ファイルを開くことができません。 (パラメーター: 0x80070005, 0x00000005)

    ハンドルされない例外が 0x75274598 (KernelBase.dll) で発生しました(picture5cpp_UI.exe ): 0x00000004: ファイルを開くことができません。 (パラメーター: 0x80070005, 0x00000005)。」

    >・wsreset.exe (Windows ストアアプリのキャッシュをクリアする)

    実行しました。たぶん正常に実行できたと思います。

    >・Remove-AppxPackage (PowerShell を使って強制削除)

    Remove-AppxPackage」の後に何と入力してよいかわかりません。「Windows 8 アプリのテストを自動化する 」の末尾と同じに入力したら、下図のようにエラーになりました。

    >出力されたファイルを新規に作ったプロジェクトの出力ファイルと見比べてみてください。

    出力された.exeファイルを見比べてみると、ファイルのサイズが少し違います。古い方の.exeファイルが1,959KBなのに対し、作り直した方は1,967KBです。

    >新規に作ったプロジェクトの方をストアに関連付けしてしまった方が早いかもしれませんね。

    おっしゃる意味がよくわからないのですが、当方の作成したアプリは、自分だけで使うものであり、ストアに公開したり配布したりするつもりはないのですが、それでも「ストアに関連付ける」ことが必要なのでしょうか?

    >すでに登録済みのアプリと関連付けるので

    いままで、作ったアプリを「ストアに登録」したことはありません。アプリを自分だけで使う場合にも、「ストアに登録」することが必要なのでしょうか。全くの初心者で何もわからないもので、よろしくお願いします。

    2015年3月13日 20:48
  • biac 様

    結局、アプリのアンインストールと、「・wsreset.exe (Windows ストアアプリのキャッシュをクリアする)」を実行しただけですが、これで古いアプリが動くようになりました。

    勉強不足の私に丁寧に説明いただき、感謝します。今回は本当にありがとうございました。

    また何かありましたら、よろしくお願いします。


    • 編集済み fghck854 2015年3月13日 21:13 文面追加
    2015年3月13日 21:02
  • > アプリのアンインストールと、「・wsreset.exe (Windows ストアアプリのキャッシュをクリアする)」を実行しただけですが、これで古いアプリが動くようになりました。

    それはよかったです♪

    残った疑問に回答しておきます。

    > 「Remove-AppxPackage」の後に何と入力してよいかわかりません。

    Windows 8 アプリのテストを自動化する」の記述はちょっと分かりにくいかもしれませんね。
    Remove-AppxPackage に与える引数は、PackageFullName です。
    Get-AppxPackage でインストールされている全てのストアアプリの情報が一覧されるので、そこから目的のものを見つけ出します。
    ※ アプリ名ではなく、Package.appxmanifest の [パッケージ化] タブの「パッケージファミリ名」で探します

    なお、ストアアプリは、この PackageFamilyName / PackageFullName で管理されています。
    PackageFamilyName が同じなら、作成したプロジェクトが異なっていても、同じアプリだと認識されます。
    ※ ストアに関連付けると、ストアから PackageFamilyName が発行されます。関連付けし直せば、その PackageFamilyName が再取得され、新しく作ったプロジェクトでも同じアプリだと認識されるようになるわけです。

    > 当方の作成したアプリは、自分だけで使うものであり、ストアに公開したり配布したりするつもりはないのです

    失礼しました。それならば、ストアに関連付ける必要はありません。

    > アプリを自分だけで使う場合にも、「ストアに登録」することが必要なのでしょうか

    それも必要ないですね。
    ただし、証明書の有効期限が切れるので、定期的に開発者ライセンスを更新し、証明書を作り直してリビルドする必要があるわけです。

    なお、テスト証明書でビルドしたストアアプリの利用は、マイクロソフトにレポートが行きます (MSDN「開発者用ライセンスの取得 (ストア アプリ)~ライセンスの不正利用」参照)。 うっかり多人数に使われたりしないよう、お気を付けください。


    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    2015年3月14日 8:11
  • biac 様

    最後まで疑問に答えていただき、ありがとうございます。勉強になりました。ついでにもう一つ質問してもいいでしょうか。

    >テスト証明書でビルドしたストアアプリの利用は、マイクロソフトにレポートが行きます。うっかり多人数に使われたりしないよう、お気を付けください。

    当方はまだ、ストアアプリの作り方を勉強している段階で、他人に使われては困るといった高度なアプリなどはまだ作成できません。ですが、作成したアプリは自分のパソコンの中にだけあり、他人からそのアプリを使われることなどないと思っていたのですが、違うのでしょうか。

    テスト証明書でビルドすると、「ストアに関連付け」したり「ストアに登録」したりしなくても、他人がそのアプリを使えるということなのでしょうか。

    よろしかったらご教示願います。

    2015年3月14日 9:34
  • > 作成したアプリは自分のパソコンの中にだけあり、他人からそのアプリを使われることなどない

    その通りです。
    すみません、「うっかり」なんてうっかり書いてしまい、心配させてしまいました。

    参考までに。
    ストアを介さず、ビルドした PC 以外の PC にストアプリをインストールするには、次の2つが必要です。
    ・テスト証明書でデジタルサインされたインストール用パッケージ
    ・テスト証明書を作成した時のストアアプリ開発者ライセンス
    詳しくは次のブログ記事を参照してください。
    MSDN blogs: Windows ストア アプリをテストインストールする方法


    biac [ http://bluewatersoft.cocolog-nifty.com/ ]

    2015年3月14日 12:07
  • biac 様

    返信、ありがとうございます。当方もストアアプリについて、もう少し勉強したいと思います。今回は大変ありがとうございました。

    2015年3月14日 12:29