2012-06-29 30 views
5

Tengo 5 proyectos en mi solución C#.Missing assembly after build

  1. Común
  2. DataAccess.
  3. IU
  4. Componentes
  5. prueba

puedo añadir una referencia a Components.dll. Pero, cuando corro la solución, tengo el error:

The type or namespace name 'Components' does not exist.

El Components.dll ya está presente en la carpeta de referencias.

¿Podría ayudarme?

Aquí es construir de salida:

------ Rebuild All started: Project: Comps, Configuration: Release Any CPU ------ 
    Comps -> ..\Ashyaneh\Comps\bin\Release\AshyanehComps.dll 
------ Rebuild All started: Project: Interfaces, Configuration: Debug Any CPU ------ 
    Interfaces -> ..\Ashyaneh\Interfaces\bin\Debug\AshyanehInterfaces.dll 
------ Rebuild All started: Project: Common, Configuration: Debug Any CPU ------ 
    Common -> ..\Ashyaneh\Common\bin\Debug\AshyanehCommon.dll 
------ Rebuild All started: Project: Web, Configuration: Debug Any CPU ------ 
    Web -> E:\My Programming 1391\HRShojaieWebAppRC2\Ashyaneh\Web\bin\Web.dll 
------ Rebuild All started: Project: Test, Configuration: Debug x86 ------ 
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): 
warning MSB3253: The referenced assembly "AshyanehComps.dll" could not be resolved 
because it has a dependency on "System.Web, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a" which is not in the currently targeted framework 
".NETFramework,Version=v4.0,Profile=Client". Please remove references to assemblies 
not in the targeted framework or consider retargeting your project. 
    Test -> ..\Ashyaneh\Test\bin\Debug\Test.exe 
========== Rebuild All: 5 succeeded, 0 failed, 0 skipped ========== 
+1

¿Se ha agregado el proyecto de componentes como referencia en cualquiera de estos otros proyectos? ¿En cuál de estos cinco proyectos se informa el error? ¿Puedes construir con éxito cada uno de ellos por separado? –

+0

Sí, cada uno de ellos se compila correctamente. –

+0

No, el proyecto de componentes se agregó como referencia solo en el proyecto de prueba. –

Respuesta

16

Aquí es su problema:

El ensamblaje de referencia "E: \ Mi Programación 1391 \ HRShojaieWebAppRC2 \ Ashyaneh \ Comps \ bin \ Release \ AshyanehComps.dll" no se pudo resolver porque tiene una dependencia de "System.Web, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" que no está en el marco actualmente dirigida ".NETFramework, versión = v4.0, el perfil de cliente ="

que Asumiendo están tratando de ejecutar .NET 4.0 que está compilando contra el "peso ligero", perfil de cliente, bibliotecas de clase base. Necesita las bibliotecas de Framework Class completas para System.Web para ser incluidas.

Solución

Con el fin de cambiar esta click derecho en el Proyecto de AshyanehComps.dll> haga clic en Propiedades> haga clic en la pestaña "Aplicación"> cambiar el "Marco de destino" a" Framework 4" .

Solo para estar seguro, seguiría los pasos anteriores para todos los proyectos en su solución y debería estar bien.

+0

Muy bien. Hecho. Ahora está bien. Problema fue resuelto. Muchas gracias, querido amigo. –

0

verificar que guarde su csproj cuando confirme su solución, porque sus csproj contienen sus referencias:

+0

tanque de respuesta, todos los csproj se guardan ... el problema existe aún –

1

¿Seguro que tiene componentes agregados como referencia en cada lugar que tiene que ser haciendo clic derecho en el proyecto que tiene el error y haciendo clic en "Agregar referencia" y eligiendo una referencia de proyecto?

Si lo anterior se hace Me sigue este proceso:

  • Guardar todo
  • Cierre Visual Studio
  • Eliminar las carpetas BIN y OBJ en cada uno de sus proyectos
  • Reiniciar VS
  • Inténtalo de nuevo

Si todavía no funciona entonces es probable que necesite ajustar su orden de compilación. Haga clic con el botón derecho en la solución y asegúrese de que cada uno de sus proyectos esté compilado en el orden correcto de dependencia y asegúrese de que no tenga ninguna dependencia circular.

+0

tanque usted, hago todos los pasos, pero no funciona. ¿Qué significan las dependencias circulares? –

+0

solo uno de los proyectos cometerá este error si agrego una referencia a él .. es components.dll. lo cambio de nombre, pero todavía no funciona –

+1

Interesante ... Trate de publicar su salida de compilación MS en su publicación original, que debería ser más útil (aparece en la pestaña "Salida") –

0

Verifique que el marco de destino de su aplicación principal no esté configurado en .Net Framework 4.0 Client Profile. Si se establece en esto, cámbielo y configúrelo en .Net framework 4.0.

Se puede ver cómo cambiar http://msdn.microsoft.com/en-us/library/bb398202.aspx

+0

¿Has probado mi solución? fue útil? –

0

En primer lugar, usted tiene 5 proyectos. Tiene que determinar qué 'Componentes' se informa que no existe en qué proyecto en particular?

Luego, vaya a la referencia del proyecto para agregar (volver a agregar si estaba allí para permitir el caché de referencia de VS generado) que para el proyecto. Compruebe si necesita la opción "copiar a local" o bien verifique la ruta de ensamblaje global.

Ahora que has terminado para todas las referencias, si el problema aún surgió, revisa tu código de proyecto (línea específica) para ver por qué no está funcionando. Publique la salida MS Build y lo dirá.

+0

Tengo correo electrónico, caché, configuración y algunas otras clases en Components.csproj. Cuando agrego una referencia a Components.dll, se agregó y todas sus clases son accesibles (!). pero cuando quiero ejecutar (F5), el tipo o espacio de nombres no existe error. –

0
  • Cuando se agregan proyecto 'Componentes' a otros proyectos como referencia, en 'Agregar referencia' pantalla añadir su referencia en la ficha Proyecto no Navegar pestaña en la ruta de salida del proyecto 'Componentes' (Components.dll) .

  • Luego, borre su solución y cree su proyecto 'Componentes'.

  • Si tiene errores en su proyecto 'Componentes', resuélvalos.

  • Por fin construir su solución.

0

Lo más probable es que sus aplicaciones estén orientadas al marco de 4.0 Client Profile como el mío. La solución a menos que esté utilizando algo específico para 4.0 es soltarlo a 3.5 y los errores desaparecerán. Gracias Microsoft.