Estoy trabajando en un código de C# en Visual Studio 2012 en Windows 7. Mi solución contiene varios proyectos.

Recientemente he añadido un nuevo proyecto en mi solución, y se añade el archivo dll de este nuevo proyecto en las referencias de otros 2 proyectos en la solución (uno de los ser el inicio del proyecto). El nuevo proyecto en sí se hace referencia a varios otros proyectos que no están incluidos en mi solución.

La construcción de los proyectos en la solución funciona bien, pero cuando intento ejecutar el programa (en Debug o Release) me sale un error. Aquí está el error:

System.IO.FileNotFoundException was caught
HResult=-2147024894
Message=Could not load file or assembly 'ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Source=NP
FileName=ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
FusionLog==== Pre-bind state information ===
LOG: User = MyCompany\MyName
LOG: DisplayName = ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : NP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\MyName\Documents\Visual Studio 2012\Projects\MyProgram\Analysis\bin\Debug\Analysis.vshost.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD.DLL.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD/ABCD.DLL.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD.EXE.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD/ABCD.EXE.
StackTrace:
at NewProject.DATA.SetType(NP np, String code, OrderType orderT, MODEL MODELv)
at NewProject.DATA.SetData(NP np, String no, String type, String law, String time, OrderType orderT, MODEL MODELv)
InnerException:

Análisis es mi proyecto de inicio.
NewProject es el proyecto que he añadido recientemente a mi solución.
ABCD.dll se hace referencia en NewProject, pero el proyecto ABCD no es parte de la solución en sí misma.

En este error, se dice que el AppBase es file:///C:/Users/Minombre/Documentos/Visual Studio 2012/Proyectos/Miprograma/Análisis/bin/Debug/

Sin embargo, cuando miro el ABCD de referencia en NewProject, dice:

Assembly ABCD
C:\Users\MyName\Documents\Visual Studio 2012\Projects\np\bin\ABCD.dll

De hecho, ABCD.dll en no en el AppBase la dirección escrita en el error. Pero nunca me dijo que estaba allí, y no entiendo de dónde proviene.

Traté de poner ABCD.dll en el AppBase dirección de el error que me está dando. Pero cada vez que reconstruir NewProject y (entonces) mi proyecto de inicio de Análisis, ABCD.dll desaparece de C:/Users/MyName/Documents/Visual Studio 2012/Proyectos/Miprograma/Análisis/bin/Debug/

Soy bastante nuevo en Visual Studio. Probablemente se me hizo algo mal al agregar mi nuevo proyecto, pero no puedo entender lo que es. Si uno de ustedes tiene una idea sobre el método para resolver este problema, por favor no dude en hablar !

InformationsquelleAutor Lez | 2013-08-27

1 Comentario

  1. 4

    Si usted necesita referencias entre los proyectos, a continuación, agregar Proyecto «referencias» en lugar de hacer referencia a los archivos DLL. Si usted realmente necesita para hacer referencia a un archivo DLL, entonces:

    1) Crear un «Bibliotecas» (o algo así) en la carpeta de proyecto.

    2) Copia la referencia a la DLL en esta carpeta.

    3) En el VS, el uso de «Agregar elemento existente» para agregar el archivo DLL en el proyecto. En el archivo de la elección de cuadro de diálogo se necesita cambiar el filtro de archivo *.* para el archivo DLL a aparecer.

    4) en Virtud de las propiedades de este archivo DLL del nodo elige «Copiar si es posterior» en la opción de Build.

    5) Agregar referencia a el archivo DLL en las «Bibliotecas» de directorio.

    Referencias entre los proyectos son, por supuesto, mejor, porque como la reconstrucción de sus referencias se actualizan automáticamente. De lo contrario, usted necesita para reemplazar el archivo DLL con uno nuevo cada vez que desee actualizar la referencia.

    • Para la subversión de la razón I de referencia para NewProject con NP.dll lo Siento, Andrew y sus respuestas se sienta confuso. Usted dijo que me (he entendido mal, probablemente porque no tiene sentido para mí): 1)Crear vacío «Bibliotecas» en la carpeta del proyecto NewProject 2)en el que me copia ABCD.dll y los otros archivos Dll necesarios para NewProject. 3)? No estoy seguro de lo de la DLL o proyecto que está hablando. De todos modos yo no se puede usar «Agregar elemento existente» para agregar un archivo DLL (los archivos dll que no aparecen). Lo que hice es NewProject > Agregar Referencia > ABCD.dll 4)»Copiar si es posterior» aparece la opción en las propiedades del Archivo, pero no en Referencia a propiedades
    • Agregar un archivo DLL mediante «Agregar elemento existente» a la carpeta «Libraries» en su proyecto. De DLL para aparecer cambiar el filtro en la esquina inferior derecha para . o *.dll (por defecto se busca sólo los archivos de código para agregar). Después de esto, usted será capaz de elegir «Copiar si es posterior opción». De esta manera el archivo DLL se copian junto con el exe de archivo que permite ejecutar el proyecto.
    • Sí, funcionó. Gracias.

Dejar respuesta

Please enter your comment!
Please enter your name here