Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio即使在生成项目时也显示错误_C#_Visual Studio_Syntax Error_Resharper_Intellisense - Fatal编程技术网

C# Visual Studio即使在生成项目时也显示错误

C# Visual Studio即使在生成项目时也显示错误,c#,visual-studio,syntax-error,resharper,intellisense,C#,Visual Studio,Syntax Error,Resharper,Intellisense,我对Visual Studio的C#解决方案有问题。它显示完全随机的错误,但项目会生成。现在,我有33个有错误的文件,我可以在所有文件中看到红色的曲线 我尝试清理/重建解决方案,关闭Visual Studio,甚至重新启动计算机。我可以修改.cs文件,并且可以看到解决方案中的更改 有人知道它为什么会这样做吗?也许您尝试重置intellisense缓存。在visual studio 2012中,我在一个包含许多分部类定义的大型项目中工作时遇到了类似的问题。 减少分区部分解决了部分问题,同时清除in

我对Visual Studio的C#解决方案有问题。它显示完全随机的错误,但项目会生成。现在,我有33个有错误的文件,我可以在所有文件中看到红色的曲线

我尝试清理/重建解决方案,关闭Visual Studio,甚至重新启动计算机。我可以修改.cs文件,并且可以看到解决方案中的更改


有人知道它为什么会这样做吗?

也许您尝试重置intellisense缓存。在visual studio 2012中,我在一个包含许多分部类定义的大型项目中工作时遇到了类似的问题。
减少分区部分解决了部分问题,同时清除intellisense缓存—一段时间。

如果您有ReSharper,请尝试清空ReSharper缓存:

在菜单中,重新竖琴>选项>环境>常规>清除缓存

以及禁用和重新启用ReSharper:

在菜单中,工具>选项>重新竖琴>常规>挂起/恢复

在我的案例中没有帮助,我尝试过,并且使用JetBrains网站上的最新下载修复了Resharper——这两个都没有帮助。这是在我尝试关闭/重新打开VS,重新启动我的机器,重复,构建/重建和组合之后


有趣的是,在第二次重新启动VS后,挂起Resharper似乎解决了这个问题,但在我启用Resharper后,它又回来了。我遇到了这样一个问题,Intellisense似乎无法识别一个项目的存在(许多“找不到此类型”、“此命名空间不存在”等错误)

在所有引用项目中删除并重新添加项目引用将修复该问题,但可以通过编辑问题项目的.proj文件来修复根本原因

靠近“缺失”项目的顶部。csproj文件是一个元素:

<ProjectGuid>{GUID}</ProjectGuid>
{GUID}
在所有引用项目中.csproj文件都是项目引用:

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>

{另一个GUID}
违规项目

引用GUID与项目的GUID不匹配。将上面的
{GUID}
替换为
{other-GUID}
修复了问题,而无需检查每个引用项目。

我清理了解决方案,关闭了VS,重新打开了它,生成了解决方案,红色的未解析线被清除,构建成功。

有时我必须通过查看所有项目并手动删除“bin”和“obj”文件夹来进行自定义清理。要在VisualStudio中查看它们,必须为每个项目启用隐藏文件和文件夹。完成此操作后,重新生成解决方案。

有时,如果您只是清理解决方案,错误会消失,但它们最终可能会在一段时间后或在下一次生成时返回。

tldr卸载并重新加载问题项目

当这种情况发生在我身上时,我(过去)会尝试关闭VS并重新打开它。大概有一半的时间是这样的。当它不起作用时,我会关闭解决方案,删除.suo文件(或整个.vs文件夹),然后重新打开解决方案。到目前为止,这一直对我有效(在过去的6个月中超过10次),但它有点乏味,因为有些事情会被重置,例如构建模式、启动项目等

因为通常只有一个项目有问题,所以我试着卸载这个项目并重新加载,结果成功了。我的样本量只有1,但比其他两个选项快得多,所以可能值得尝试。(更新:我的一些同事现在也尝试过这种方法,到目前为止,每次都有效。)我怀疑这种方法是有效的,因为它会写入.suo文件,并且可能修复了导致问题的损坏部分


注:这似乎适用于VS2019、2017和2015。

对于我的具体案例,这是另一个开发人员合并到主分支的服务参考。这很好,只是语法突出显示无法解析生成的服务类,并且源代码都带有红色下划线。清理、重建、重新启动什么都没做


我所要做的就是刷新服务引用,然后VS设法在幕后将各个部分组合起来。源代码或生成的文件没有任何更改。

我刚刚在恢复将文件添加回项目的git提交后遇到了这个问题

清理和重建项目不起作用,即使我在每个步骤之间关闭VS


最终起作用的是将该文件重命名为其他文件,然后再次将其更改回原来的文件facepalm:

遇到此问题时,Visual Studio无法识别单一类型,该类型显示红色曲线,即使解决方案已成功构建。我注意到在解决方案资源管理器中,文件左侧没有显示展开时的类和属性的展开箭头

修复方法是从项目和保存/生成中排除该文件,这会产生预期的错误,然后将该文件包括在项目和保存并生成中


执行这些步骤后,Visual Studio再次开始识别我的类型。查看git中的差异,问题似乎是由于my.csproj文件的
行中的行尾不匹配。

0-右键单击解决方案并清洁解决方案

1-接近VS

2-删除项目的.suo文件

3-开放VS


4-构建解决方案

我发现在Visual Studio 2017中使用Git时经常发生这种情况,切换存在依赖代码更改的分支。即使项目将成功生成,错误列表中仍会有错误

这些错误通常是命名空间问题和缺少引用,即使库引用存在

解决:

  • 关闭Visual Studio
  • 删除{sln root}.vs\SlnName\v15.suo文件(隐藏)
  • 重新启动Visual Studio

在我的情况下,vs从未保留导入的名称p
Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File