8

Windows XP でアプリケーション (WPF、VB.net 2008) を実行すると、奇妙な Windows エラーが発生します。エラーとデバッグが発生したマシンにVS2008をインストールしたとき。ローダー ロックの例外が発生したので、デバッグに移動して削除しました。ただし、マシンにインストールしてもエラーが発生します。

アプリケーションのインストール時にローダー ロック例外を削除する方法はありますか。それが最善の解決策ではないことは理解していますが、これは ReportViewer で WindowsElementHost を開始したときにのみ発生するようで、これが問題を引き起こしているため、他に何をすべきかわかりません。

2003年と同様に、XPのすべてのバージョンにその問題があります。

Windows 7 および Vista では、デバッグ中およびインストールされた製品中にそのエラーが発生することはありません。同じことが 2008 および 2008R2 にも当てはまります。

4

1 に答える 1

3

私は少し調査を行いましたが、以下に私の推測を見つけることができます:

  • レポート ビューアー コントロール自体のバグである可能性があり、新しいバージョンに更新する必要があります。2012 年 12 月に、.NET 3.5 と 4.0 の両方で動作すると思われる新しいバージョンがリリースされたことに気付きました (この投稿を参照) (したがって、VB 2008 で動作するはずです。ダウンロード ページを参照してください)。
  • Report Viewer 2008 SP1 には .NET 3.5 SP1 が必要であることに気付きました (ダウンロード ページを参照してください)。古いバージョンが原因で、表示されている例外が発生する可能性があります。
  • Windows XP が最新の Service Pack に更新されていないか、エディションが間違っている可能性があります。ここでも、Report Viewer 2010 SP1 には Windows XP SP3 が必要であり (ダウンロード ページを参照)、Report Viewer 2012 は Windows XP Starter Edition では動作しません。
  • この例外 (特に混合モードのアセンブリ) を引き起こすのは、Report Viewer によって使用されるライブラリである可能性があります。この意味では、ダンプまたはスタック トレースが役立ちます。
  • Visual Studio Tools for Office フォーラムのこのスレッドには、この問題を理解するためのいくつかのリソースがリストされた包括的な回答があります。
  • 前のリンクは、状況によっては、このロックを無視しても安全であることを示唆しています。ローダー ロック MDA を無効にした Visual Studio でのテストで問題がないことがわかった場合は、このブログ投稿の手順を使用して運用マシンで MDA を無効にすることができます。基本的には、環境変数を設定し、いくつかの行をapp.configファイル (新しい行がどのように表示されるかについては、Loader Lock MDAのドキュメントも参照してください)。私は試したことはありませんが、最後の手段として役立つかもしれないと思いました。アプリケーションを徹底的にテストして、望ましくない副作用を避けるようにしてください。

さらにヘルプが必要な場合は、次のように指定することをお勧めします。

  • 使用している Report Viewer のバージョン。
  • 対象とする .NET Framework のバージョン (特に Service Pack を含む);
  • Windows XP にインストールされているサービス パック。
  • 収集できるスタック トレースまたはデバッグ情報。
于 2013-04-04T18:45:48.697 に答える