WPFアプリが開発PCでは正常に動作するのに、配布先のPCでは動作しない。起動直後に図のようなウィンドウが表示されてプログラムが停止する。
「問題の詳細の表示」の中身は以下の内容。
問題の署名:
問題イベント名: CLR20r3
問題の署名 01: DXApp1.exe
問題の署名 02: 1.0.0.0
問題の署名 03: 5b552c79
問題の署名 04: mscorlib
問題の署名 05: 4.7.3062.0
問題の署名 06: 5ab95126
問題の署名 07: 4291
問題の署名 08: 0
問題の署名 09: System.Windows.Markup.XamlParse
OS バージョン: 6.1.7601.2.1.0.256.48
ロケール ID: 1041
追加情報 1: 0a9e
追加情報 2: 0a9e372d3b4ad19135b953a78882e789
追加情報 3: 0a9e
追加情報 4: 0a9e372d3b4ad19135b953a78882e789オンラインのプライバシーに関する声明をお読みください:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0411オンラインのプライバシーに関する声明が利用できない場合は、プライバシーに関する声明をオフラインでお読みください:
C:Windowssystem32ja-JPerofflps.txt
ライブラリが足りていない?
Xamlの解析(XamlParse)で落ちている?
GUI周りに市販のライブラリを使っているので、恐らく何かDLLが不足している印象なんだけど、これだけだとどうも絞り込めない。DispatcherUnhandledExceptionを取得するコードを追加してみた。赤字部分が追加した箇所。(参考:c#, wpf 4.0 EventType : clr20r3 P9 : system.windows.markup.xamlparse)
App.xaml
<Application x:Class="DXApp1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml" DispatcherUnhandledException="App_DispatcherUnhandledException">
...
</Application>
App.xaml.cs
using System.Windows.Threading;
namespace DXApp1
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
void App_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e)
{
MessageBox.Show(e.Exception.ToString());
}
}
}
無事に例外をキャッチ!
実行してみたら、今度は詳しい内容がキャッチできた。やっぱりライブラリ追加するの忘れてた。