C# 除非文件处于打开状态,否则错误的文件号和行号不会显示在错误列表中
我有一个解决方案,除非打开文件,否则错误的文件名和行号不会显示在错误列表中 我有另一个解决方案,在构建解决方案时只显示三个错误,它们确实显示行号和文件。如果我打开有错误的文件,会弹出另外3个错误,但是当我关闭文件时,所有错误都会消失,直到我再次重建 我在谷歌上看到的唯一问题是路径太长或太怪异,但我认为这不是问题。对于部分工作的解决方案,路径为C# 除非文件处于打开状态,否则错误的文件号和行号不会显示在错误列表中,c#,visual-studio-2012,C#,Visual Studio 2012,我有一个解决方案,除非打开文件,否则错误的文件名和行号不会显示在错误列表中 我有另一个解决方案,在构建解决方案时只显示三个错误,它们确实显示行号和文件。如果我打开有错误的文件,会弹出另外3个错误,但是当我关闭文件时,所有错误都会消失,直到我再次重建 我在谷歌上看到的唯一问题是路径太长或太怪异,但我认为这不是问题。对于部分工作的解决方案,路径为C:\TFS\Apps\Rel\u 2013.7.1\S3\CrmSvcUtil Extensions,对于完全不工作的解决方案,路径为C:\TFS\App
C:\TFS\Apps\Rel\u 2013.7.1\S3\CrmSvcUtil Extensions
,对于完全不工作的解决方案,路径为C:\TFS\Apps\Rel\u 2013.7.1\S3
编辑1
为了清楚我看到了什么:我的解决方案中有多个项目,但其中一个项目不会显示错误的文件或行号,除非文件已打开
在这个屏幕截图中,我添加了两个愚蠢的错误,每个错误都在不同的项目中,并构建了解决方案。测试项目按预期显示文件和行号。公共项目没有显示文件或行号错误,即使当我实际打开包含错误的文件时,它应该显示错误。警告没有显示文件,因为它是项目级警告,而不是文件级警告,这很有意义
当我打开带有错误的文件时,会显示文件名和行号,但会出现另一个错误:
如果我将int更改为字符串,则只删除行号错误。实际上,为了删除错误,我必须进行生成。某些错误(如架构错误)会被报告,但不会影响最终生成。根据文件的不同,除非文件处于打开状态,否则可能会/可能不会看到错误。这里有一些东西可以尝试
输出生成和报告的intellisense错误之间存在差异并不罕见。听起来您只是在查看intellisense解析器生成的错误。它只查看打开的文件。关闭文件后,这些IS错误将再次从列表中删除。构建并打开一个文件后,如果看到错误列表发生了变化,类似的解释是,is解析器再次接管
这一切都是出于设计,只需修复错误即可取得成功。对于使用遗留工作流框架V3的项目,我也遇到了同样的问题。值得注意的是,如果project只有编译器警告,则文件和行会正确显示,但导致所有警告和错误的错误请参考文件C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.Targets(121,5): 我发现的讨厌的解决办法是
int.TryParse(s,out int-queueId)代码>
返回到预定义变量,并成功编译
int queueId = 0;
int.TryParse(s, out queueId);
我会确定微软有一个bug
示例错误:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : Invalid expression term 'int'
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : ; expected
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : Invalid expression term ')'
第一步什么都没做。。。第二步做了一些奇怪的事情。它被设置为最小值,我将其更改为正常值。错误显示在第121行第5列(实际错误应该是第20行第55列),但是该文件是C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow。目标
警告也显示在该文件中名称空间中的元素“ItemGroup”http://schemas.microsoft.com/developer/msbuild/2003'具有无效的子元素“wfcomilationoptions”
以及8个其他类似错误,只是不同的子元素元素名称…您找到任何解决方法了吗?我也没有错误列表中显示的文件和行,输出显示对工作流的引用。目标5>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow。目标(121,5):错误:非静态字段、方法或属性需要对象引用。:-)这是相同的错误,无法合并,因为原始文件没有文件+行信息。你的问题中没有任何暗示可以解释为什么没有。如果你从.targets文件中得到警告,那么你需要记录它们。将近一年后,我终于找到了这个问题的答案!不过谢谢你的建议。。。
int queueId = 0;
int.TryParse(s, out queueId);
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : Invalid expression term 'int'
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : ; expected
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Workflow.targets(121,5): error : Invalid expression term ')'