【即解決】「アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました」のエラーを解決した話

プログラミング関連

ソフトウェアをインストールし起動したところ、

『アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。[続行]をクリックすると、アプリケーションはこのエラーを無視し、続行しようとします。[終了]をクリックすると、アプリケーションは直ちに終了します。』

『ファイルまたはアセンブリ”DBField_WRAP.dll”、またはその依存関係の一つが読み込めませんでした。ダイナミックリンクライブラリ(DLL)初期化ルーチンの実行に失敗しました。(HRESULTからの例外:0x8007045A)』

という風に出ておりました。

今回、このエラーをにわか知識で試行錯誤してみたので、備忘録として書いていきたいと思います。

同じエラーで苦しんでいる人がいたら参考までに見ていただけると幸いです。

まず、エラーの全容を詳しく

一応、詳細のタブがあったので中身を見てみました。

具体的な内容としては以下のことが書いてありました。

Just-In-Time (JIT) デバッグを呼び出すための詳細については、
ダイアログ ボックスではなく、このメッセージの最後を参照してください。

************** 例外テキスト **************
System.IO.FileLoadException: ファイルまたはアセンブリ 'DBField_WRAP.dll'、またはその依存関係の 1 つが読み込めませんでした。ダイナミック リンク ライブラリ (DLL) 初期化ルーチンの実行に失敗しました。 (HRESULT からの例外:0x8007045A)
ファイル名 'DBField_WRAP.dll' です。'DBField_WRAP.dll'
   場所 ManageConstruction.DlgManageConstSHNet.DlgManageConst_Load(Object sender, EventArgs e)
   場所 System.Windows.Forms.Form.OnLoad(EventArgs e)
   場所 System.Windows.Forms.Form.OnCreateControl()
   場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   場所 System.Windows.Forms.Control.CreateControl()
   場所 System.Windows.Forms.Control.WmShowWindow(Message& m)
   場所 System.Windows.Forms.Control.WndProc(Message& m)
   場所 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   場所 System.Windows.Forms.Form.WmShowWindow(Message& m)
   場所 System.Windows.Forms.Form.WndProc(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)




************** 読み込まれたアセンブリ **************
mscorlib
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4340.0 built by: NET48REL1LAST_C
    コードベース:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
GhManageConstruction
    アセンブリ バージョン:18.5.5.0
    Win32 バージョン:18.5.5.0
    コードベース:file:///C:/Program%20Files%20(x86)/DATT%20JAPAN%20Inc/%E7%8F%BE%E5%A0%B4%E7%B7%A8%E9%9B%86%E9%95%B7%20NEO%20Ver.18/GhManageConstruction.exe
----------------------------------------
System.Windows.Forms
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4340.0 built by: NET48REL1LAST_C
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4300.0 built by: NET48REL1LAST_C
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4084.0 built by: NET48REL1
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
CrowdStrike.Sensor.ScriptControl
    アセンブリ バージョン:6.44.15806.0
    Win32 バージョン:6.44.15806.0
    コードベース:file:///C:/WINDOWS/SysNative/CrowdStrike.Sensor.ScriptControl15806.dll
----------------------------------------
System.Configuration
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4190.0 built by: NET48REL1LAST_B
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4340.0 built by: NET48REL1LAST_C
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4084.0 built by: NET48REL1
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
ManageConstruction
    アセンブリ バージョン:18.5.5.0
    Win32 バージョン:18.5.5.0
    コードベース:file:///C:/Program%20Files%20(x86)/DATT%20JAPAN%20Inc/%E7%8F%BE%E5%A0%B4%E7%B7%A8%E9%9B%86%E9%95%B7%20NEO%20Ver.18/ManageConstruction.DLL
----------------------------------------
System.Data
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4270.0 built by: NET48REL1LAST_C
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Windows.Forms.resources
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4084.0 built by: NET48REL1
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ja_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
    アセンブリ バージョン:4.0.0.0
    Win32 バージョン:4.8.4084.0 built by: NET48REL1
    コードベース:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ja_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------

************** JIT デバッグ **************
Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、
またはコンピューター (machine.config) の構成ファイルの jitDebugging 
値を system.windows.forms セクションで設定しなければなりません。
アプリケーションはまた、デバッグを有効にしてコンパイルされなければ
なりません。

例:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、
ハンドルされていない例外はすべてコンピューターに登録された
JIT デバッガーに設定されなければなりません。

ここに書いてあるデバックを有効にするにはNet.Framework上で編集できます。

にNet.Frameworkのバージョン確認方法が記載されているのでこれを参照にするといいと思います。

ちなみに今回はVer.4.0であった。

いじる中身はmachine.configの中のjitDebuggingを有効化すればいいらしいので、

今回はデバックを見て修正はしなかったので使用はしていないがやってみたい人はトライしてもらえればと思います。

machine.config の場所 - Microsoft.NET - Project Group
machine.config の場所

上記のサイトにconfigまでのパスが書いてあるので参考までに張っておきます。

今回のエラー原因として考えられるのは、

  • ソフトウェアインストール時のエラー
  • アカウント作成の際のシステム構築の際に不具合が発生
  • 本体の物理破損

の3つであると考えて一つ一つしらみつぶしにしていきました。

エラーの原因探求と改善のためにやったこととしては、

  • システム再インストール
  • 別ユーザーで同じ事象が起きるか
  • ユーザーの消去からの再度環境構築

では、順番にやっていきます。

ソフトウェアの再インストール(失敗)

これで動けばソフトウェアのインストール時のエラーであると断定できます。

手順としては、Windowsキー+Xでアプリと機能を選択し、

そこから該当アプリをアンインストールしました。

アンインストール後、アプリのダウンロード先からインストールをしてみて、起動しました。

結果は、同様のエラーが出ました。

つまり、今回のエラー原因としてはソフトウェアのインストーラーのエラーの可能性は低くなります。

次に、別のユーザーでパソコンにログインして同じ環境で起動できるか試してみます。

別ユーザーで同様の環境でエラーができるか実証

これは、ログアウトして、別のアカウントで入ってみてソフトウェアを起動できるか試してみます。

これによって、もしソフトウェアが動けばパソコン自体のプロセッサの不具合などの物理的なエラーの可能性が低くなります。

結果は別のアカウントでは動いたので物理破損の可能性は少ないです。

では、最後にアカウントの再度入れなおす作業をしていきます。

DBFieldはmySQLのベースに作成されているものだと思ったのでもしかしたらデータベース管理系の既存ソフトがうまく構築されていないのが原因かなと思いました。

アカウントを再度作成し起動を試みる

まず、アカウントの消去をするために別のユーザーで再度ログインしなおします。

その後コントロールパネルにてアカウント、他のユーザーを選択し、アカウントの消去を行います。

通常であればここでアカウントとデータを消去できますが、今回はできなかったので直接消しに行きました。

Cドライブ上のユーザーより該当アカウントを探し消去すれば完了です。

これで該当ユーザーのシステムが完全に消去された状況になります。

最後に再度ログインすれば自動でシステム構築することができますので、該当ソフトウェアを再度開いてもらいます。

私の場合、問題なく開くことができました。

最後に

つまり今回の事象は、ユーザーのシステム構築時のエラーが原因の可能性が高かったです。

多分、複数のアカウントで同一パソコンを運営していたこと、そして6か月間も電源つけっぱなしであったことが原因で、

プロセッサが不具合を起こしたのかなと思います。

皆さんの参考になりましたら、はてぶ、シェアよろしくお願いいたします。

コメント

  1. whoiscall より:

    Thanks.

タイトルとURLをコピーしました