我使用 MS Visual Studio 2005 在 VB.NET 中编写了一个应用程序。我使用的是 .NET 版本“2.0.50727”。直到最近,该应用程序一直在正常运行。使用一段时间后,它开始产生System.Runtime.InteropServices.COMException error (80080005)
. 当我调用生成另一个外部应用程序的实例时会发生错误。一旦发生此错误,它就永远不会消失,每次打开我的应用程序时都会发生。此错误破坏了我的程序的功能,因为它依赖于它正在调用的第二个应用程序。
我不确定是什么导致了这个错误的发生,但我知道它是用户特定的,而不是应用程序。它似乎发生在用户的 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 对象。我让它保持活动状态,直到应用程序关闭,因为我对它进行了很多调用。