Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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# 除非文件处于打开状态,否则错误的文件号和行号不会显示在错误列表中_C#_Visual Studio 2012 - Fatal编程技术网

C# 除非文件处于打开状态,否则错误的文件号和行号不会显示在错误列表中

C# 除非文件处于打开状态,否则错误的文件号和行号不会显示在错误列表中,c#,visual-studio-2012,C#,Visual Studio 2012,我有一个解决方案,除非打开文件,否则错误的文件名和行号不会显示在错误列表中 我有另一个解决方案,在构建解决方案时只显示三个错误,它们确实显示行号和文件。如果我打开有错误的文件,会弹出另外3个错误,但是当我关闭文件时,所有错误都会消失,直到我再次重建 我在谷歌上看到的唯一问题是路径太长或太怪异,但我认为这不是问题。对于部分工作的解决方案,路径为C:\TFS\Apps\Rel\u 2013.7.1\S3\CrmSvcUtil Extensions,对于完全不工作的解决方案,路径为C:\TFS\App

我有一个解决方案,除非打开文件,否则错误的文件名和行号不会显示在错误列表中

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

我在谷歌上看到的唯一问题是路径太长或太怪异,但我认为这不是问题。对于部分工作的解决方案,路径为
C:\TFS\Apps\Rel\u 2013.7.1\S3\CrmSvcUtil Extensions
,对于完全不工作的解决方案,路径为
C:\TFS\Apps\Rel\u 2013.7.1\S3

编辑1 为了清楚我看到了什么:我的解决方案中有多个项目,但其中一个项目不会显示错误的文件或行号,除非文件已打开

在这个屏幕截图中,我添加了两个愚蠢的错误,每个错误都在不同的项目中,并构建了解决方案。测试项目按预期显示文件和行号。公共项目没有显示文件或行号错误,即使当我实际打开包含错误的文件时,它应该显示错误。警告没有显示文件,因为它是项目级警告,而不是文件级警告,这很有意义

当我打开带有错误的文件时,会显示文件名和行号,但会出现另一个错误:


如果我将int更改为字符串,则只删除行号错误。实际上,为了删除错误,我必须进行生成。

某些错误(如架构错误)会被报告,但不会影响最终生成。根据文件的不同,除非文件处于打开状态,否则可能会/可能不会看到错误。这里有一些东西可以尝试

  • 以调试/发布模式构建,并查看这是否会改变任何一个构建的情况
  • 更改MSBuild项目生成输出详细程度(工具->项目和解决方案->生成并运行),以查看是否有影响。我推测这只会增加输出,但不会影响错误列表窗口
  • 这种情况会发生在2013年吗?这可能会提供线索

  • 输出生成和报告的intellisense错误之间存在差异并不罕见。

    听起来您只是在查看intellisense解析器生成的错误。它只查看打开的文件。关闭文件后,这些IS错误将再次从列表中删除。构建并打开一个文件后,如果看到错误列表发生了变化,类似的解释是,is解析器再次接管


    这一切都是出于设计,只需修复错误即可取得成功。

    对于使用遗留工作流框架V3的项目,我也遇到了同样的问题。值得注意的是,如果project只有编译器警告,则文件和行会正确显示,但导致所有警告和错误的错误请参考文件C:\Windows\Microsoft.NET\Framework\v4.0.30319\Workflow.Targets(121,5):

    我发现的讨厌的解决办法是

  • 卸载项目
  • 在.csproj文件的底部注释掉该行
  • 迈克尔在2018年5月没有为我们工作

    Visual Studio 2017+.NET 4.7.2和旧工作流服务C#7.2

    添加了内联变量偏差:
    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 ')'