Skip to content

.NET 5 VB Late bound variables unavailable at run time due to Public member 'Visible' on type 'Application' not found #66847

Closed
@nkastratovic

Description

@nkastratovic

Description

I'm running a C# application which calls a VB class called wrapper.vb, which uses MS Word objects. This code was tried and tested and worked fine with .NET 4.8 but now breaks in .NET 5.

I have a variable: Protected m_wdApp As Object

When the class is instantiated, it calls:

Reproduction Steps

    Public Sub New()
    m_wdApp = CreateObject("Word.Application")
    m_wdApp.Visible = False
    m_outputFormat = DOC_FORMAT
End Sub 

Expected behavior

Actual behavior

This throws the following exception
4c64q
:
Now the above would be all very fine and well, if I wasn't able to actually look at the contents of the m_wrdApp and see that yes, they are all intact and are all visible in my watch Windows
r09tg
.
Using the Immediate window, attempting to access any of these attributes from the Word object throws an error (as you'd expect).

However, if I ask VS to "add a watch" to one of the attributes, for instance this "Visible" which we currently need, it comes out with this convoluted watch name
Ip3az
:

Regression?

I should note that all of this worked fine before upgrading to .NET 5, so I'm wondering if this is either a bug or there are some new rules for dealing with late bound variables.

Known Workarounds

No response

Configuration

VB .NET 5
Windows 10
x64

Other information

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions