Visual Studio: references in code not recognized?

2020-07-03 07:55发布

问题:

I have a solution in VS2008 (C#) that contains multiple projects. I just retooled some of the .csproj files for our build process, and suddenly while coding Project B won't recognize references from Project A in the class code...think the red squiggly lines under a variable type I've created. However, building the solution generates no errors. Why's it behaving like this?

回答1:

I would suggest that you clear your Visual Studio temp files - it can often get confused about project structures and require a fresh start.

First, quit out of VS completely and restart it. If the problem is still there, find your VS cache folder and delete it, and then do a rebuild.

For help finding your cache folder, check this post.



回答2:

In your Project Properties from B, make sure Project A is checked under dependencies.



回答3:

When VS starts acting strangely wonky, and I can't find a logical fix, I kill Visual Studio, and manually do a 'clean' by deleting all of the bin/obj folders.

I have a batch file that does this for me quicker than I could do it manually. I place this in my solution directory, and all my projects are found in subdirectories.

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 ..


回答4:

Make sure both projects are being built in the Configuration Manager

(right click on the solution and then click “Configuration Manager”)

You might also hover over the redline or just build again to see if you get anymore details. C# and VB are both pretty good at telling you why they not happy.



回答5:

Another solution


If the other answers regarding clearing Visual Studio cache, .NET Cache, and ensuring references are valid, try this one.

Based on the source, and trying this solution, I've had success.

  1. Close out of all instances of visual studio
  2. Locate the .vs hidden folder within your solution.
  3. Delete the entire hidden .vs folder.
  4. Rebuild the solution

-- Source



回答6:

I've removed the reference from the project which classes were not recognized and re-added this reference. Everything got fixed.