una tipo referencia puede nombres nombre falta existe espacio ensamblado encontro encontrar directiva cs0246 c# namespaces

c# - tipo - falta una directiva using o una referencia de ensamblado



¿Por qué recibo el error CS0246: no se pudo encontrar el tipo o el nombre del espacio de nombres? (9)

Editar: O ignórame, no estás usando el estudio visual

¿Ha agregado la referencia a su proyecto?

Como en este tipo de cosas:

Estoy usando Snarl C # API para enviar notificaciones a gruñir.

Ahora he guardado el contenido de la URL anterior en un archivo llamado SnarlNetwork.cs y el contenido de mi archivo test.cs es:

using SnarlNetworkProtocol; using System; class test { public static void Main(String[] args) { SNP snarl_object = new SNP(); string hostname = "localhost"; string hostport = "9887"; string appName = "Spotify"; bool val = snarl_object.register(hostname, hostport, appName); if (val == true) { string title = "hello"; string message = "world"; string timeout = "5"; bool newval = snarl_object.notify(hostname, hostport, appName, null, title, message, timeout); if (newval == true) { Console.WriteLine("sucessfull"); } } } }

Ahora, cuando intento compilar mi archivo test.cs usando csc test.cs , csc test.cs el siguiente error:

C:/Users/Noob/csharp>csc test.cs Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.4926 for Microsoft (R) .NET Framework version 3.5 Copyright (C) Microsoft Corporation. All rights reserved. test.cs(1,7): error CS0246: The type or namespace name ''SnarlNetworkProtocol'' could not be found (are you missing a using directive or an assembly reference?)

Entonces, ¿qué estoy haciendo mal aquí porque, según yo, no me falta ninguna using directive .


Estaba usando .NET Framework 4.5 pero mi nueva biblioteca tenía .NET Framework 4.5.2 y tuve el mismo problema cuando traté de compilar. Lo resolví actualizando mi proyecto de 4.5 a 4.5.2 (lo mismo que mi biblioteca).


Este es el problema:

C:/Users/Noob/csharp>csc test.cs

No ha agregado una referencia a la DLL. Necesitas algo como:

C:/Users/Noob/csharp>csc test.cs /r:SnarlNetwork.dll

(o como se llame el ensamblaje).

Alternativamente, si no lo tiene como una biblioteca separada, simplemente compile ambos archivos:

C:/Users/Noob/csharp>csc test.cs SnarlNetwork.cs

Si no ha compilado un ensamblado pero desea hacerlo, puede usar:

csc /target:library /out:SnarlNetwork.dll SnarlNetwork.cs csc Test.cs /r:SnarlNetwork.dll

(De hecho, especificar el archivo de salida es innecesario en este caso particular, pero aún está más claro ...)


Esto generalmente me sucede cuando tengo una instrucción de uso pero he olvidado hacer referencia al ensamblado que define el espacio de nombres.

Pero en su caso, como el espacio de nombres está definido en un archivo en su proyecto, ha olvidado contarle al compilador sobre el archivo snarlnetwork.cs.

Ver ejemplos del compilador csc


He resuelto este problema agregando la referencia a System.Web.


Puede deberse al "perfil del cliente" de .NET Framework. Intenta usar la "versión completa" de .NET.


Resolví este problema actualizando Target Framework en la configuración de la aplicación del proyecto. El proyecto estaba compilando con .NET Framework versión 4.5.1 pero el dll al que se hizo referencia se compiló con la versión 4.6.1. Así que actualicé la versión de mi proyecto.


Tuve el mismo error cuando el archivo cs utilizado estaba ubicado dentro de la carpeta del proyecto, pero no se hizo referencia desde .csproj del proyecto principal. Intellisence ve este archivo dentro de la carpeta del proyecto, pero el compilador no lo ve porque falta la referencia en .csproj


Tuve este error en un Proyecto MVC. Y después de una larga investigación descubrí que el archivo .cs que contenía algunas de las clases a las que me refería en el proyecto principal tenía un Build Actions establecido en "Content" ...

Después de cambiarlo "Contenido" -> "Compilar", el error desapareció.