2011-01-06 15 views
21

私は自分のWPFアプリケーションをデプロイしようとしていましたが、セットアップウィザードを使用してセットアッププロジェクトを作成しました。これを構築してプログラムをインストールした後、すぐにデスクトップのexeをクリックすると、「プログラムが動作しなくなりました」というポップアップが表示されるので、「プログラムのデバッグ」をクリックします。WPFプロジェクトをデプロイした後のXamlParseException

「System.Windows.Markup.XamlParseException」の未処理の例外がPresentationFramework.dllで発生しました

追加情報: 'ConnectionIdが例外をスローしました。'行番号「10」および行位置「9」。

この例外は、何を修正するかについて私には何の指摘もしません。私のアプリのどこにでも 'connectionId'はありません。

システムトレイ用のNotifyIconが原因で以前はXAMLParseExceptionが発生していましたが、これはアイコンをmy exeのパスに追加することで修正されました。私はこれが問題かもしれないと思ったので、セットアッププロジェクトにアイコンを追加しました。まだ動かない。

私はこれがあいまいなエラーであることを知っていますが、どんな助けもありがとうと思いますが、私のアプリはまったく動かないでしょう。ありがとう!

答えて

30

これは通常、すべての依存関係を出力にコピーしないことによって発生します。あなたが言うように、エラーメッセージはあまり役に立ちませんが、解析された型を解決するのに必要なすべての依存関係がアプリケーションにあることを確認します。

通常、参照されているアセンブリに対しては、コピーローカルをtrueに設定するだけで十分ですが、参照自体がアセンブリを参照する場合がありますので、これらの参照も明示的に追加する必要があります。

アップデート:@ BENN1THによって

重要な追加。

あなたは組み立てが必要であるかを確認したい場合:私は公開され、私のプロジェクトをインストールした後、問題の同じ種類を得ていた

(デバッグVS2013デスクトップに罰金働いていた、などエラーなし)しかし、http://geekswithblogs.net/lbugnion/archive/2007/03/14/108728.aspxとwhamからのアドバイスを使用しました!インストールされているプロジェクトは正常に動作していました..

+0

私は、私が私のアセンブリで参照しているすべてのDLLが含まれていることを確認しました。どのように私は他の人が必要かもしれないかを伝えることができますか? – Drew

+0

オハイオ州は今働いています。私は参照が必要で、また、自分のアイコンがアプリケーションのフォルダにあることを確認する必要があります。私は私の問題の一部は、私はプロジェクトの出力と一緒にビルドにアイコンを追加したと思う。私は事実の後にアイコンを構築し、インストールしてから追加する必要がありました。とにかく助けてくれてありがとう – Drew

+6

この例外が出たとき、私はデバッガに入り、InnerExceptionを見て、どのdllが見つからなかったかを調べることができました。 –

9

ソリューションのクリーニングと再構築が役に立ちます。

+0

再構築は私のために働いていましたが、この答えがなければ私はそれを考えなかったかもしれませんので、ありがとう – Matt

+0

ブレンドからアニメーショントリガーを追加した後も同じ問題がありました。ビンとobjを削除して再構築し、問題を解決しました。 –

3

VS2010のWPFソリューションでこの問題が発生しました。このソリューションには、dllをテストするための単純なdllとテストプロジェクト(スタートアップに設定)が含まれていました。私のdllはx86に設定され、私のテストプロジェクトはx64に設定されていました。テストプロジェクトをx86に変更したとき、問題は解決されました。

2

デバッガでこの例外が発生した場合は、例外のInnerExceptionメンバーをチェックします。それはあなたに欠けているアセンブリについてのヒントを与えるかもしれません。

1

私はちょうどこれを把握しようとしている良い4時間を持っていた。私のことは結局のところxamlとは関係ありませんでした! MainWindow initializeのコードの後ろにある小さな誤りだったことが判明しました。他のすべてが失敗した場合

、そこ

0

クリーニングチェックして、プロジェクトを再構築することは私のために効果的ではなかったです。

binディレクトリを削除して再構築しようとすると、私はこの方法で問題を解決しました。

0

私はこの問題を抱えています。この問題は、Microsoft.Expression.Drawing.dllがdllをダウンロードして参照を追加するために発生します。

+0

@ HansZ、おそらく彼は質問に答えようとしているのですが、謎めいた方法です。 – rpax

+0

@ Hans Zの場合、DLLの問題はMicrosoftの一般的なエラーであるため、これが答えになる可能性があります。 – SmallChess

+0

は合意し、コメントを削除 –

2

一度プロジェクトを公開してインストールしたのと同じ種類の問題が発生しました(デバッグVS2013デスクトップで問題なく動作していました)が、http://geekswithblogs.net/lbugnion/archive/2007/03/14/108728.aspxとwhamからのアドバイスを使用しました!アプリケーション内で実行されている複数のDLLで作業するときにインストールプロジェクト働いていた。..

try 

{ 
    InitializeComponent(); 
} 
catch (Exception ex) 
{ 
    // Log error (including InnerExceptions!) 
    // Handle exception 
} 
+0

男、あなたは素晴らしいです!あなたは私の日を救う!:) – StepUp

0

私はこのに走ったし、それらのDLLがロードされ、同じ依存関係の異なるバージョンを持っています。

私たちは通常、この問題を防ぐためにリリースビルド時にdllをマージしますが、開発サイクル中に複数のアンマージドDLLをテストする場合は、それを確認します。

解凍されていないDLLのセットをテストし、テストされていない他のDLLに対してマージされたリリースバージョンを使用するか、または依存するDLLが両方のセットで同じバージョンであることを確認するソリューションです。

関連する問題