MS Visual Studio 2005 を使用して VB.NET でアプリケーションを作成しました。.NET バージョン '2.0.50727' を使用しています。アプリケーションは最近までエラーなしで実行されていました。しばらく使用すると、 が生成され始めますSystem.Runtime.InteropServices.COMException error (80080005)
。別の外部アプリケーションのインスタンスを生成する呼び出しを行うと、エラーが発生します。このエラーが発生すると、アプリケーションが開かれるたびに発生し、消えることはありません。このエラーは、呼び出している 2 番目のアプリケーションに依存しているため、プログラムの機能を壊します。
このエラーが発生する原因はわかりませんが、アプリケーションではなくユーザー固有であることはわかっています。これは、ユーザーの Windows プロファイルで発生するもののようです。同じマシンで別のユーザーを使用するか、問題のあるユーザーの新しいプロファイルを作成すると、プログラムはしばらくの間エラーなく動作します。最終的に (数週間以内に) エラーが返され、再度解決するまでそのままになります。なぜこれが起こっているのかを理解するために COM エラーをデバッグしようとしていますが、これは非常に奇妙な動作であり、どこから始めればよいかわかりません。自分自身をプロファイルに関連付けて永続化するエラーは見たことがありません。
私は .NET の経験はあまりありませんが、VB 6 アプリケーション プログラミングを数多く行ってきました。あなたが持っている提案を提供してください。よろしくお願いいたします。
エラーが発生しているコードブロックは次のとおりです。
Public Class frmMain
Public btApp As BarTender.Application
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
btApp = New BarTender.Application
Catch COMex As Runtime.InteropServices.COMException
MessageBox.Show("Error " + COMex.ErrorCode.ToString() + ": " + COMex.Message)
End Try
frmMain.vb フォーム (最初にロードするフォーム) の上部で変数を宣言します。最初のフォームが読み込まれるときに、COM オブジェクトを読み込みます。多くの呼び出しを行うため、アプリケーションが閉じるまでアクティブのままにします。