2011-10-07 293 views
19

Estoy tratando de agregar un [Science.dll] en mi proyecto que debe ser staright forward. Pero estoy obteniendo un problema. ¿Puede alguien decirme por qué?Cómo agregar dll en el proyecto C#

Mi proyecto C C que acabo de copiar de internet.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Windows.Forms; 
using System.ComponentModel; 
using System.Data; 
using Science.Mathematics.VectorCalculus; 



namespace using_science_dll 
{ 
    static class Program 
    { 
     /// <summary> 
     /// The main entry point for the application. 
     /// </summary>`enter code here` 
    } 
} 

C: \ Csharptutorial \ using_science_dll \ using_science_dll \ Program.cs (7,7): error CS0246: El tipo o espacio de nombres 'Ciencia' No se pudo encontrar (¿falta una directiva using o un conjunto referencia?)

¿Es porque estoy usando VS 2008?

Science.dll se ejecutará en el siguiente marco .Net 4.0 y Visual C# 2010 Express

enter image description here

+1

Como puede ver a la derecha en su captura de pantalla, la referencia está rota. Entonces, es natural que la cláusula 'using' no funcione. Pero necesita decirnos cuál es el mensaje de advertencia/error en la referencia interrumpida. – CodesInChaos

+1

Tiene una advertencia en la sección "Referencias" de Solution Explorer.¿Qué dice esa advertencia? –

+0

Visual Studio no puede encontrar la referencia de Science, intente quitar y volver a agregar esta referencia ... – 2GDev

Respuesta

22

La DLL debe estar presente en todo momento, como su nombre indica, una referencia solo le dice a VS que está tratando de usar elementos de la DLL. En el archivo de proyecto, VS almacena la ruta real y el nombre de archivo de la DLL a la que se hace referencia. Si lo mueve o lo elimina, VS ya no lo puede encontrar.

Normalmente creo una carpeta libs dentro de la carpeta de mi proyecto donde copio archivos DLL que no están instalados en el GAC. Entonces, realmente agrego esta carpeta a mi proyecto en VS (muestra los archivos ocultos en VS, luego hago clic derecho y "Incluir en el proyecto"). A continuación, hago referencia a los archivos DLL de la carpeta, por lo que cuando se comprueba el control de fuente, la biblioteca también se registra. Esto hace que sea mucho más fácil cuando más de un desarrollador tendrá que cambiar el proyecto.

(. Por favor asegúrese de establecer el tipo de construcción en "ninguno" y "no se copian en la carpeta de salida" para la DLL en su proyecto)

PS: Yo uso un alemán de Visual Studio, por lo que la los subtítulos que cité pueden no coincidir exactamente con la versión en inglés ...

+2

Hola Thorsten Por favor, diga con más detalles cómo las referencias a las DLL que están dentro del proyecto/solución. –

+2

En la carpeta de su proyecto (este es el nivel donde están todos sus archivos cs y csproj), cree una nueva carpeta (el nombre no importa, suelo usar "lib"). Copie la DLL a la que se hace referencia allí. En VS, asegúrese de que está viendo todos los archivos seleccionando el proyecto y haciendo clic en el botón "Mostrar todos los archivos". A continuación, presione "Actualizar", haga clic con el botón derecho en la carpeta (atenuada) y haga clic en "Agregar al proyecto. Establezca el estilo de compilación en" NINGUNO "para la DLL y luego agregue una referencia a la DLL desde la nueva carpeta. –

4

Agregue el DLL en su lista de referencias del proyecto? Si no está bien, haga clic en la carpeta del proyecto "Referencias" y seleccione "Agregar referencia", luego use browse para ubicar su science.dll, selecciónelo y haga clic en Aceptar.

edición

no puedo ver la imagen de la instancia de VS que algunas personas se refieren a y me cuenta que ahora dice que trabaja en Net4.0 y VS2010.

Los proyectos VS2008 son compatibles con NET 3.5 de manera predeterminada. Espero que ese sea el problema, ya que su DLL puede ser compatible con NET 4.0 pero no con NET 3.5.

2

En la columna de la derecha debajo de su explorador de soluciones, puede ver al lado de la referencia a "Ciencia" que está marcado como una advertencia. O eso significa que no puede encontrarlo, o que se opone a él por alguna otra razón. Si bien este es el caso y su código lo requiere (y no solo en la lista de referencias) no compilará.

Por favor, publique el mensaje de advertencia, podemos intentar ayudarlo más.

Cuestiones relacionadas