2009-06-24 25 views
11

Tengo una solución en VS2008 (C#) que contiene múltiples proyectos. Acabo de actualizar algunos de los archivos .csproj para nuestro proceso de compilación, y de repente mientras codificaba el Proyecto B no reconocería las referencias del Proyecto A en el código de clase ... piense en las líneas rojas onduladas bajo un tipo de variable que he creado. Sin embargo, construir la solución no genera errores. ¿Por qué se está comportando así?Visual Studio: ¿referencias en el código no reconocidas?

Respuesta

19

Le sugiero que borre sus archivos temporales de Visual Studio; a menudo puede confundirse con las estructuras del proyecto y requerir un nuevo comienzo.

Primero, salga completamente de VS y reinícielo. Si el problema persiste, busque su carpeta de caché VS y elimínela, y luego realice una reconstrucción.

Para obtener ayuda para encontrar su carpeta de caché, check this post.

+2

Reiniciar + limpiar + reconstruir lo hizo. Comportamiento extraño, ojalá supiera por qué hizo eso en primer lugar, así que puedo tratar de evitarlo, como me ha sucedido un par de veces. ¡Gracias! – Chris

+0

buena idea. Obtienes +1 – rlbond

+2

Clean + restart. – AgentFire

2

En las Propiedades del proyecto desde B, asegúrese de que el Proyecto A esté marcado en dependencias.

+0

Se comprueban. – Chris

+0

Oh bien. Valió la pena el intento. – rlbond

+0

Sí, +1 para tomar un tiro al menos :) Gracias sin embargo. – Chris

1

Asegúrese de que ambos proyectos se están construyendo en el Administrador de configuración

(clic derecho en la solución y luego haga clic en “Gestor de configuración”)

También podría flotar sobre la línea roja o simplemente construir de nuevo para ver si obtienes más detalles. C# y VB son muy buenos para decirte por qué no están contentos.

3

Cuando VS comienza a actuar de forma extraña y no puedo encontrar una solución lógica, elimino Visual Studio y manualmente hago una 'limpieza' eliminando todas las carpetas bin/obj.

Tengo un archivo por lotes que hace esto por mí más rápido de lo que podía hacerlo manualmente. Coloco esto en mi directorio de soluciones, y todos mis proyectos se encuentran en subdirectorios.

rem "%%~dpa" says: Give me the (d)drive and (p)path of the (a, %%a) file. 
rem However, our dir /a:d will result in only listing folders... 
rem The final "%%a" is just appending the 'file' (diretory name) to the 
rem drive-and-path string 
for /f %%a in ('dir /b /a:d *.*') do call :process "%%~dpa%%a" 
pause 
goto :eof 

:process 
echo Looking in %1 
cd "%1" 
if EXIST "%1\bin" (
    echo Found 'bin' - it's gone now. 
    rd /s /q "%1\bin" 
) 
if EXIST "%1\obj" (
    echo Found 'obj' - it's gone now. 
    rd /s /q "%1\obj" 
) 
cd .. 
+0

Ciertamente, uno puede estar seguro de que los archivos se reconstruirán correctamente al cerrar VS, matar el vshosts y luego borre los archivos a mano. – Robino

Cuestiones relacionadas