2011-01-26 18 views
10

Contexto:referencia Asamblea VS2010 entre los proyectos no

tengo 3 proyectos en mis soluciones (C#, .NET 4.0):

  • Abc.Business (proyecto DLL)
  • Abc.Test (proyecto de la prueba)
  • Abc.Ui (proyecto Wpf)

  • Abc.Bu siness es mi lógica comercial. Contiene Entidades, gerentes, servicios, etc.

  • Abc.Test tienen una referencia de proyecto en Abc.Business y son la prueba de la unidad. Ellos funcionan bien
  • Abc.Ui tiene una referencia de proyecto en Abc.Business

Abc.Ui no es capaz de resolver todos los using Abc.Business; El registro de errores muestra:

El tipo de error o el nombre del espacio de nombres 'Business' no existe en el espacio de nombres 'Abc' (¿falta una referencia de ensamblado?) c: \ Abc \ Abc.Ui \ ViewModels \ ClientViewModel.cs

Además, cuando escribo manualmente el using en la parte superior de mi archivo, The Intelli-sense me muestra el "Abc.Business.etc ..". Entonces el Intelli-sense camina en la referencia pero no se construye.

¿Alguna idea?

+0

¿Limpió su solución y luego intentó construir? Usualmente eso ayuda. – Bernard

+0

Mire de cerca en el explorador de soluciones. es el árbitro en absoluto, ¿qué icono muestra? –

+0

@Bernard: sí muchas veces ... –

Respuesta

15

Muchas gracias a Grhm y Henk Holterman que me señalaron la solución de Arquitectura. En realidad, no fue el problema, pero me hace encontrarlo. El problema fue el objetivo del Marco. El proyecto Ui estaba orientado de forma predeterminada a un Framework .NET 4.0 con un perfil de "Cliente". Este perfil no puede hacer referencia a un perfil que no sea cliente. Lo encuentro en la ventana de salida de depuración que no es suficiente. (Estoy acostumbrado a ver en la lista de errores en su lugar)

Esto es lo que muestra el error:

c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9): advertencia MSB3253: El ensamblado al que se hace referencia "C: \ Abc \ Abc.Business \ bin \ Debug \ Abc.Business.dll" no se pudo resolver porque tiene una dependencia en "System.Web, Version = 4.0. 0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a "que no está en el marco actualmente objetivo" .NETFramework, Version = v4.0, Profile = Client ". Elimine las referencias a ensamblajes que no estén en el marco específico o considere reorientar su proyecto.

Cambio el perfil a normal (nada) y BOOM funciona todo. Here's the MSDN page al respecto

Gracias de nuevo por su tiempo chicos.

+1

Lo tuve recientemente y la respuesta fue un poco diferente. El mismo error surgió hoy y esto lo resolvió para mí. Gracias :) – dooburt

+1

gracias por eso. ¡Pasaron 2 horas buscando una solución! Casi al borde de la desesperación – matcheek

+0

¡Es un verdadero placer ayudar! –

0

¿Ha agregado una referencia al proyecto Abc.Business al proyecto Abc.Ui? Puede hacerlo haciendo clic derecho en Referencias en Abc.Ui, seleccionando Agregar referencia y yendo a la pestaña Proyectos. y seleccionando Abc.Business.

+0

Sí Ui tiene una referencia de proyecto en negocios. Gracias por la pista. –

3

Me esperaba problemas si hay una incompatibilidad entre los dos.

una serie de consejos/ideas: unos

  • eliminar la referencia y añadirla de nuevo, como una referencia a un proyecto
  • Reconstruir solución y comprobar el mensaje de error
  • Plataforma cheque (versión). Tal vez la interfaz de usuario es la plataforma de cliente y la capa de Biz utiliza la plataforma completa.
4

He tenido problemas como este cuando teníamos inconsistencias en el administrador de configuración. (Se accede a través del menú Generar).

Tuvimos algunos proyectos construyendo una variante x86, algunos construyendo una variante x64 y el administrador de configuración tenía "Plataformas de soluciones" para "Cualquier CPU" y "Procesadores mixtos".

Creo que teníamos nuestro "Negocio" construido como una biblioteca x86 y nuestra "UI" como un x64 (o viceversa), lo que significaba que no podía encontrar el ensamblado (para la arquitectura correcta) y dio el error estás viendo, pero el intelisense todavía funcionaba cuando miraba la fuente.

Sugiero que revise las plataformas de sus proyectos y las plataformas de soluciones y arregle cualquier rareza.

+0

Señala un punto de interrelación. En mi administrador de configuración, todos los proyectos están en "Cualquier CPU" excepto en Abc.Ui. Estoy probando diferentes configuraciones ahora ... –

Cuestiones relacionadas