Visual Studio:无法识别代码中的引用?
Posted
技术标签:
【中文标题】Visual Studio:无法识别代码中的引用?【英文标题】:Visual Studio: references in code not recognized? 【发布时间】:2009-06-24 15:22:55 【问题描述】:我在 VS2008 (C#) 中有一个包含多个项目的解决方案。我刚刚为我们的构建过程重新调整了一些 .csproj 文件,突然在编码项目 B 时无法识别类代码中来自项目 A 的引用......想想我创建的变量类型下的红色波浪线。但是,构建解决方案不会产生错误。为什么会这样?
【问题讨论】:
【参考方案1】:我建议您清除 Visual Studio 临时文件 - 它经常会对项目结构感到困惑并需要重新开始。
首先,完全退出VS并重新启动它。如果问题仍然存在,请找到您的 VS 缓存文件夹并将其删除,然后重新构建。
如需帮助查找缓存文件夹,请check this post。
【讨论】:
重启+清理+重建做到了。奇怪的行为,希望我知道为什么它首先会这样做,这样我就可以尽量避免它,因为它已经发生在我身上几次了。谢谢! 可能是这样的:***.com/questions/1832807/…【参考方案2】:当 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 ..
【讨论】:
当然可以肯定的是,当您关闭 VS、杀死 vshosts 然后手动删除文件时,文件将被正确重建。【参考方案3】:另一种解决方案
如果关于清除Visual Studio cache、.NET Cache 和 确保引用有效不起作用,试试这个。
基于来源,并尝试了这个解决方案,我已经成功了。 删除 Visual Studio 解决方案缓存文件夹
-
关闭所有 Visual Studio 实例
在您的解决方案中找到
.vs
隐藏文件夹。
删除整个隐藏的.vs
文件夹。
重建解决方案
-- Source
【讨论】:
【参考方案4】:在 B 的项目属性中,确保在依赖项下检查项目 A。
【讨论】:
哦,好吧。值得一试。 是的,+1 至少拍了一张 :) 谢谢。【参考方案5】:确保两个项目都在配置管理器中构建
(右键单击解决方案,然后单击“配置管理器”)
您也可以将鼠标悬停在红线上方或重新构建以查看是否获得更多详细信息。 C# 和 VB 都非常擅长告诉你他们为什么不开心。
【讨论】:
【参考方案6】:我已从项目中删除了无法识别的类的引用并重新添加了此引用。一切都解决了。
【讨论】:
【参考方案7】:仔细检查您是否公开了您所引用的类。当您创建新课程时,Visual Studio 不会自动执行此操作,我有时会忘记。
【讨论】:
以上是关于Visual Studio:无法识别代码中的引用?的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 无法识别已安装 NuGet 包的头文件
Visual Studio 2015 中的“无法引用默认构造函数”