我在VS2008(C#)中有一个包含多个项目的解决方案。我刚刚为我们的构建过程重新编写了一些.csproj文件,并且突然编码项目B时不会识别类代码中项目A的引用...想想我创建的变量类型下的红色波浪线。但是,构建解决方案不会产生任何错误。为什么它表现得像这样?
答案 0 :(得分:22)
我建议您清除Visual Studio临时文件 - 它经常会对项目结构感到困惑,需要重新开始。
首先,完全退出VS并重新启动它。如果问题仍然存在,请找到您的VS缓存文件夹并将其删除,然后进行重建。
有关查找缓存文件夹的帮助,check this post。
答案 1 :(得分:3)
在B的项目属性中,确保在依赖项下检查项目A.
答案 2 :(得分:3)
当VS开始表现奇怪,并且我找不到逻辑修复时,我会杀死Visual Studio,并通过删除所有bin / obj文件夹手动执行“清理”。
我有一个批处理文件可以比我手动更快地为我完成此操作。我把它放在我的解决方案目录中,我的所有项目都在子目录中找到。
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 ..
答案 3 :(得分:3)
如果其他有关清除Visual Studio cache,.NET Cache和 确保引用有效,请尝试此操作。
根据消息来源,尝试这种解决方案,我已经成功了。
.vs
隐藏文件夹。.vs
文件夹。答案 4 :(得分:1)
确保在Configuration Manager中构建两个项目
(右键单击解决方案,然后单击“Configuration Manager”)
您也可以将鼠标悬停在红线上,或者只是再次构建以查看是否再收到详细信息。 C#和VB都很擅长告诉你为什么他们不开心。
答案 5 :(得分:0)
我从项目中删除了无法识别的类的引用,并重新添加了该引用。一切都固定了。
答案 6 :(得分:0)
仔细检查您是否将引用的类设为公开。当您创建一个新类时,Visual Studio 不会自动执行此操作,我有时会忘记。