El proyecto referenciado se "pierde" en el momento de la compilación

102

Tengo una solución C # con dos proyectos: un servicio (el proyecto principal) y un registrador. El servicio usa clases del registrador. Agregué una referencia al proyecto del registrador dentro del proyecto de servicio. En el momento del diseño, el autocompletar funciona bien: las clases del registrador son visibles, las referencias que uso están coloreadas apropiadamente.

Reconstruyo la solución y las cosas salen mal. Las referencias ya no se reconocen: "El nombre 'Registro' no existe en el contexto actual 'y las clases ya no existen en autocompletar. Quitar y volver a adjuntar la referencia me lleva al estado base de tener los identificadores visibles para autocompletar.

Reinicié, borré todos los cachés y me aseguré de que esta sea la única instancia de VS 2010 que se ejecuta en mi máquina.

¿Hay algo obvio (obviamente) que me estoy perdiendo?

Bob Kaufman
fuente

Respuestas:

158

Verifique los tipos de construcción de cada proyecto en las propiedades del proyecto; apuesto a que uno u otro se configurará para construir .NET XX - Client Profile.

Con versiones inconsistentes, específicamente con una Client Profiley la otra no, entonces funciona en tiempo de diseño pero falla en tiempo de compilación. Un verdadero problema.

Hay algo divertido en Visual Studio 2010 para mí, que sigue configurando proyectos de manera aparentemente aleatoria Client Profile, a veces cuando creo un proyecto y, a veces, unos días después. Probablemente algún atajo de teclado que estoy presionando accidentalmente ...

Joshcomley
fuente
1
Apuesto a que tienes razón ... ¡y si es así, me avergüenzo de no recordar esta pregunta comparable que hice el mes pasado! stackoverflow.com/questions/3991361/…
Bob Kaufman
6
@Bob Me sigue sangrando, y al igual que tú con esa pregunta anterior, cada vez que sucede, durante al menos unos minutos, estoy completamente confundido por todo el asunto hasta que recuerdo "Oooooh, espera, cliente ** ** ing Profile "
joshcomley
4
También estaba teniendo este problema con VS2012. Resultó que no era el problema del perfil del cliente, sino que el proyecto al que se hacía referencia estaba en 4.5 y el nuevo proyecto al que se hacía referencia se había predeterminado en 4.0. Subí ese a 4.5 y el problema desapareció. Realmente la misma solución, solo otra variación.
Brad Mathews
Esto me sucedió recientemente en VS 2013. El proyecto era el predeterminado 4.5, pero una de las bibliotecas se construyó en 4.5.2. Si el proyecto es 4.5.2 y una de las bibliotecas es 4.5 o 4.5.1, funcionará. Pero no al revés.
ahwm
4

Asegúrese de que ambos proyectos tengan la misma versión del marco de destino aquí: haga clic derecho en el proyecto -> propiedades -> aplicación (pestaña) -> marco de destino

Además, asegúrese de que el proyecto "registrador" (que desea incluir en el proyecto principal) tenga el tipo de salida "Biblioteca de clases" en: haga clic con el botón derecho en el proyecto -> propiedades -> aplicación (pestaña) -> tipo de salida

Finalmente, reconstruya la solución.

manar
fuente