除非文件已打开,否则错误的文件和行号不会显示在错误列表中

Dar*_*ryl 7 c# visual-studio-2012

我有一个解决方案,错误列表中没有显示错误的文件名和行号,除非我打开文件.

我有另一种解决方案,当我构建解决方案时只显示三个错误,并且它们确实显示行号和文件.如果我打开带有错误的文件,则会弹出另外3个错误,但是当我关闭文件时,所有错误都会消失,直到我再次重建.

我从谷歌搜索看到的唯一问题是路径太长或太奇怪,但我不认为这是一个问题.路径C:\TFS\Apps\Rel_2013.7.1\S3\CrmSvcUtil Extensions适用于部分工作的解决方案以及根本不起作用的解决方案C:\TFS\Apps\Rel_2013.7.1\S3.

编辑1

只是为了清楚说明我所看到的内容:我的解决方案中有多个项目,但其中一个项目没有显示错误的文件或行号,除非文件是打开的.

在这个屏幕截图中,我添加了两个哑误差,每个都在不同的项目中,并构建了解决方案.测试项目按预期显示文件和行号.Common项目没有显示文件或行号错误,即使它应该和当我实际打开包含错误的文件时也是如此.警告不显示文件,因为它是项目级警告,而不是文件级警告,这是有道理的.

示例错误

当我打开带有错误的文件时,文件名和行号确实显示,但是出现了不同的错误:

错误显示在其他错误上

如果我将int更改为字符串,则只删除行编号错误.我实际上必须构建以便删除错误.

MiF*_*vil 4

我在使用旧版工作流框架 V3 的项目上遇到了同样的问题。有趣的是,如果项目只有编译器警告,则文件和行显示正确,但导致所有警告和错误的错误均引用文件 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.Targets(121 ,5):

我发现的令人讨厌的解决方法是

  1. 卸载项目
  2. 注释掉 .csproj 文件底部的行
<Import Project="$(MSBuildToolsPath)\Workflow.Targets" />
Run Code Online (Sandbox Code Playgroud)
  1. 重新加载项目并编译它。编译器错误将显示正确的文件名和行号。
  2. 修复编译器错误
  3. 再次卸载项目,恢复 Workflow.Targets 导入并重新加载项目。

向 MS 报告了类似的解决方案https://connect.microsoft.com/VisualStudio/feedback/details/797056/state-machine-workflow-projects-using-vs-2012

如果您忘记恢复 Workflow.Targets 导入,则会出现运行时错误,例如

System.Workflow.ComponentModel.Compiler.WorkflowValidationFailedException: The workflow failed validation.
   at System.Workflow.Runtime.WorkflowDefinitionDispenser.ValidateDefinition(Activity root, Boolean isNewType, ITypeProvider typeProvider)
   at System.Workflow.Runtime.WorkflowDefinitionDispenser.LoadRootActivity
Run Code Online (Sandbox Code Playgroud)