Leer en inglés

Compartir a través de


BC30451: No se ha declarado el nombre "<name>"

Una instrucción hace referencia a un elemento de programación, pero el compilador no encuentra un elemento con ese nombre exacto.

Identificador de error: BC30451

Para corregir este error

  1. Compruebe que el nombre de la instrucción de referencia esté bien escrito. Visual Basic no distingue mayúsculas y minúsculas, pero cualquier otra variación en la ortografía se considera un nombre completamente diferente. Tenga en cuenta que el carácter de subrayado (_) es parte del nombre y, por tanto, parte de la ortografía.

  2. Compruebe que tiene el operador de acceso a miembro (.) entre un objeto y su miembro. Por ejemplo, si tiene un control TextBox denominado TextBox1, para tener acceso a su propiedad Text debe escribir TextBox1.Text. Si en su lugar escribe TextBox1Text, ha creado un nombre diferente.

  3. Si la ortografía es correcta y la sintaxis de cualquier acceso a miembro de objeto es correcta, compruebe que se declaró el elemento. Para más información, consulte Elementos declarados.

  4. Si se declaró el elemento de programación, compruebe que está dentro del ámbito. Si la instrucción de referencia está fuera de la región que declara el elemento de programación, es posible que deba calificar el nombre del elemento. Para obtener más información, consulta Scope in Visual Basic.

  5. Si no usa un tipo completo o un nombre de miembro y tipo (por ejemplo, el código hace referencia a una propiedad como MethodInfo.Name en lugar de System.Reflection.MethodInfo.Name), agregue una instrucción Imports.

  6. Si intenta compilar un proyecto de estilo SDK (un proyecto con un archivo *.vbproj que comienza con la línea <Project Sdk="Microsoft.NET.Sdk">) y el mensaje de error hace referencia a un tipo o miembro del ensamblado Microsoft.VisualBasic.dll, configure la aplicación para compilarla con una referencia a la biblioteca en tiempo de ejecución de Visual Basic. De manera predeterminada, un subconjunto de la biblioteca se inserta en el ensamblado en un proyecto de estilo SDK.

    Por ejemplo, no se puede compilar el ejemplo siguiente porque no se encuentra el método Microsoft.VisualBasic.CompilerServices.Conversions.ChangeType. No está insertado en el subconjunto del tiempo de ejecución de Visual Basic que se incluye en la aplicación.

    Imports Microsoft.VisualBasic.CompilerServices
    
    Public Module Example
        Sub Main(args As String())
            Dim originalValue As String = args(0)
            Dim t As Type = GetType(Int32)
            Dim i As Int32 = Conversions.ChangeType(originalValue, t)
            Console.WriteLine($"'{originalValue}' --> {i}")
        End Sub
    End Module
    

    Para solucionar este error, agregue el elemento <VBRuntime>Default</VBRuntime> a la sección <PropertyGroup> de los proyectos, tal como se muestra en el archivo del proyecto de Visual Basic siguiente.

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

Consulte también