質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

2回答

16325閲覧

PresentationFramework.pdbは読み込まれていません、のエラーが発生する要因について

siksmtt

総合スコア20

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2019/04/17 01:25

編集2019/04/17 01:48

発生している問題・エラーメッセージ

外部ライブラリを用いたWPFアプリケーションを作成しているのですが、マウスホイールをするとエラーが発生して困っています。
ListBoxを使っているのですが、イベントに関しては特に手を加えていません。

エラーメッセージは
「PresentationFramework.pdbは読み込まれていません」というエラーになります。
ただ出力ウィンドウを見ると外部ライブラリに関するメッセージが書かれています。

質問内容

この「PresentationFramework.pdbは読み込まれていません」は一般的にどのような場合に発生するものなのでしょうか?
エラーメッセージだけ見ると不足ファイルがあるようですが、ビルドオプションなどで解決するものでしょうか?
また調査方法などはあるでしょうか?

大雑把な質問になり恐れ入りますがご助言いただけますと幸いです。

追記1

実際に表示される画面です。表示された後の動作についてはコメントをご確認ください。
イメージ説明

また最初にこの画面が表示された時の、出力ウィンドウエラーメッセージは以下の様になっています。
全て載せることは難しいのですが、このエラーメッセージの前に「PDBファイルが見つからない。シンボル無しでビルドされた。」旨のメッセージが
数10行表示されています。

例外がスローされました: 'System.InvalidOperationException' (OxyPlot.dll の中) 例外がスローされました: 'System.Windows.Markup.XamlParseException' (PresentationFramework.dll の中) This PlotModel is already in use by some other PlotView control.

ちなみにアプリケーションが落ちるまでデバッグを継続させようとすると、「 --- 内部例外スタック トレースの終わり ---」という出力がされます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2019/04/17 01:36

エラーではなく、デバッグ時のただの警告で、問題の無いものだと思います。デバッグ対象のプログラムは実行できますよね? 気になるのであれば、Visual Studio の出力ウィンドウに出力されている実際のエラーや警告内容を質問文に追記してください。
siksmtt

2019/04/17 01:42

dodox86様  コメントありがとうございます。いえ、警告ではなく例外として?新しいタブが生成されます。タブ内容についてはキャプチャ画像を加えましたのでご確認ください。一応この画面が最初に表示された時はアプリケーションは生きていますが、デバッグを継続しようとするともう一度同じ画面が表示され、さらに継続しようとするとアプリケーションが落ちます。実際のエラー文についても加えましたので、ご助言いただけますと幸いです。
guest

回答2

0

ベストアンサー

これは、デバッガでSystem.Windows.Markup.XamlParseExceptionの例外が発生した場合に中断する指定をしているためです。
そのため例外が発生した箇所で止まっているのですが、その止まった場所が自分自身で作成したコードではなく、PresentationFramework.dllというシステムで用意されているものの中なので、今回のような表示になっています。

このエラーを解決するには、例外の詳細をのほうを見て判断するしかないと思います。

詳細のほうには、This PlotModel is already in use by some other PlotView control.と出力されています。
PlotModelは複数のPlotViewで共有できないようです。
上記内容で検索すると、Oxyplotでは1つのモデルを2つのプロットにバインドすることはでききないという情報が出ています。
これをもとに自分の実装を見てみたらどうでしょう。

投稿2019/04/17 02:39

ta.fu

総合スコア1667

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

siksmtt

2019/04/17 04:20

ta.fu様  コメントありがとうございます。やはり自分のコードではなくdll内部で起きていたのですね。 もちろんOxyPlotのエラーメッセージでも検索したのですが、特に該当するようなものはなかったです。 ただListBoxとOxyPlotを組み合わせて使っているシーンが見られなかったので、そこが根本的に間違っているのかもしれないです...。 とりあえずビルドオプションなどで回避できる可能性は低そうですね...。
ta.fu

2019/04/17 06:08

This PlotModel is already in use by some other PlotView control で検索すると、githubやstackoverflowの投稿が検索されます。 そちらのほうも覗いて見ればいいと思います。 ただ、コントロール内でオブジェクトを再利用のためキャッシュしているため、という投稿もあるため、一筋縄ではいかないかもしれません。
siksmtt

2019/04/17 06:43 編集

ta.fu様  コメントありがとうございます。ご提示いただいたサイトでも調べていたのですが、既に修正済みである旨もあったり、仰る通り難しそうです。 何よりもエラーメッセージを素直に解釈したとすると、グラフの更新や生成時ではなくマウスホイールをした時に発生するのがとても不思議です。 とりあえずListView(ListBox)で実装すること自体に問題があるのかどうかが不明なので、意見がもらえそうなStackOverFlowに投げてみます。ご丁寧にありがとうございます。助かりました!
guest

0

Visual Studio デバッガーでシンボル (.pdb) ファイルとソース ファイルの指定 (C#、C++、Visual Basic、 F#) の記事が参考になるかもしれません。

機械翻訳されたページなので、非常に判りにくい日本語で書かれています。
画面右上にある「英語で読む」スイッチをONにして、原文(英語)で読んだほうが理解できそうです。

投稿2019/04/17 02:30

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

siksmtt

2019/04/17 04:09

coco_bauer様  コメントありがとうございます。一読してはいたのですがあまり理解が進まなかったので、後回しにしていました...。しっかり読み込んで確認してみようと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問