在此上下文中无法调用 System.Reflection.MemberInfo.get_CustomAttributes 方法

问题描述 投票:0回答:1

运行时CreateObject("Excel.Application")时出现异常。

有时在同一个会话中短时间内可以正常工作,但是当代码更改时,在同一个会话中就会出现异常;在大多数情况下,从第一次使用新会话执行开始,就会发生异常。

回顾各种提出的具有类似问题的解决方案,我应用了一些,例如:

a)在服务中更改为自动:安装ActivateX并重新启动

b) C:\WINDOWS\system32>regsvr32 scrrun.dll

c) C:\WINDOWS\system32>sfc /scannow

d) 将项目更改为 32 位或 64 位或任意

但只有某些时候有效。

由于某种原因失败; 或不存在,或有其他位置或实例化所需的内容。

从上面看来,我认为这是编译时的 Visual Studio bug 或错误;我与 VS 2022 社区和 VB.net 合作

我非常感谢您为解决此异常问题提供的帮助。

Private Sub PreparaXLSX()
   Dim myApp As Excel.Application

   myApp = CreateObject("Excel.Application")          

End Sub

System.Exception   HResult=0x80131500  Message = Cannot create ActiveX component.

+ TargetSite    {System.Object CreateObject(System.String, System.String)}  
                System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}

X   Cannot call method System.Reflection.MemberInfo.get_CustomAttributes in this context.

采取什么行动才能找到最终的解决方案或消除对 System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}

vb.net visual-studio
1个回答
0
投票

如果您使用 Interop 的早期绑定:

Imports Excel = Microsoft.Office.Interop.Excel

Public Sub PreparaXLSX()
    Dim myApp As Excel.Application
    Try
        myApp = New Excel.Application()
        myApp.Visible = True
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

如果您在没有互操作的情况下使用后期绑定:

Public Sub PreparaXLSX()
    Dim myApp As Object
    Try
        myApp = CreateObject("Excel.Application")
        myApp.Visible = True
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.