Condividi tramite


'<nome>' non è un membro di '<nomeclasse>'

Il membro che è stato fornito non è un membro della classe.

ID errore: BC30456

Per correggere l'errore

  1. Controllare il nome del membro per assicurarsi che sia corretto.

  2. Usare un membro effettivo della classe.

  3. Se si tenta di compilare un progetto in stile SDK (un progetto con un file *.vbproj che inizia con la riga <Project Sdk="Microsoft.NET.Sdk">) e il messaggio di errore fa riferimento a un tipo o a un membro nell'assembly Microsoft.VisualBasic.dll, configurare l'applicazione per la compilazione con un riferimento alla libreria di runtime di Visual Basic. Per impostazione predefinita, un subset della libreria è incorporato nell'assembly in un progetto in stile SDK.

    Ad esempio, l'esempio seguente non viene compilato perché non è possibile trovare la proprietà Microsoft.VisualBasic.Devices.ComputerInfo.InstalledUICulture. Non è incorporato nel subset di Visual Basic Runtime incluso nell'applicazione.

    Module Program
        Sub Main()
            Console.WriteLine($"Installed UI Culture: {My.Computer.Info.InstalledUICulture}")
        End Sub
    End Module
    ' Compilation produces the following output:
    '    c:\Projects\ComputerInfo\Program.vb(3,52): error BC30456: 'Computer' is not a member of 'bc30456.My'.
    '   [c:\Projects\ComputerInfo\bc30456.vbproj]
    

    Per risolvere questo errore, aggiungere l'elemento <VBRuntime>Default</VBRuntime> alla sezione <PropertyGroup> dei progetti, come illustrato nel file di progetto Visual Basic seguente.

    <Project Sdk="Microsoft.NET.Sdk">
      <ItemGroup>
        <Reference Include="Microsoft.VisualBasic" />
      </ItemGroup>
      <PropertyGroup>
        <VBRuntime>Default</VBRuntime>
        <OutputType>Exe</OutputType>
        <RootNamespace>bc30456</RootNamespace>
        <TargetFramework>net472</TargetFramework>
      </PropertyGroup>
    </Project>