我有一个解决方案,错误列表中没有显示错误的文件名和行号,除非我打开文件。
我有另一个解决方案,当我构建解决方案时只显示三个错误,并且它们确实显示行号和文件。如果我打开带有错误的文件,会弹出另外3个错误,但是当我关闭文件时,所有错误都会消失,直到我再次重建。
我从谷歌搜索中看到的唯一问题是路径太长或太奇怪,但我不认为这是一个问题。对于部分正常工作的解决方案,路径为C:\TFS\Apps\Rel_2013.7.1\S3\CrmSvcUtil Extensions
;对于根本不起作用的解决方案,路径为C:\TFS\Apps\Rel_2013.7.1\S3
。
只是为了清楚说明我所看到的内容:我的解决方案中有多个项目,但其中一个项目没有显示错误的文件或行号,除非该文件已打开。
在这个屏幕截图中,我添加了两个哑误差,每个都在不同的项目中,并构建了解决方案。测试项目按预期显示文件和行号。 Common项目没有显示文件或行号错误,即使它应该和当我实际打开包含错误的文件时也是如此。警告不显示文件,因为它是项目级警告,而不是文件级警告,这是有道理的。
当我打开带有错误的文件时,文件名和行号确实显示出来,但出现了不同的错误:
如果我将int更改为字符串,则只删除编号为错误的行。我实际上必须构建以便删除错误。
答案 0 :(得分:4)
我在使用旧版Workflow框架V3的项目上遇到了同样的问题。有趣的是,如果项目只有编译器警告,文件和行显示正确,但导致所有警告和错误的错误引用文件C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Workflow.Targets(121 ,5):
我找到的讨厌的解决方法是
<Import Project="$(MSBuildToolsPath)\Workflow.Targets" />
如果您忘记恢复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
答案 1 :(得分:1)
报告了某些错误,例如架构错误,但不影响最终构建。除非文件已打开,否则您可能/可能看不到错误,具体取决于文件。以下是一些值得尝试的事情
MSBuild Project Build Output Verbosity
(工具 - &gt;项目和解决方案 - &gt;构建并运行)以查看是否有效。我猜测它只会添加到输出但不影响错误列表窗口。报告的输出构建和智能感知错误之间存在差异并不罕见。
答案 2 :(得分:1)
听起来我只是看着IntelliSense解析器生成的错误。其中只查看打开的文件。当您关闭文件时,那些IS错误将再次从列表中删除。在构建和打开文件之后看到错误列表发生了类似的解释,IS解析器再次接管。
这完全是设计理念,只需修复错误即可获得成功。
答案 3 :(得分:0)
Michaels solution在2018年5月没有为我们工作。
Visual Studio 2017 + .NET 4.7.2和C#7.2,旧的Workflow服务。
添加了内联变量declerations:
int.TryParse(s, out int queueId);
回到预定义变量并成功编译。
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 ')'