CS0411:无法从使用TeamCity构建时的用法推断出方法X的类型参数

时间:2010-11-24 11:04:27

标签: c# .net-3.5 compiler-errors teamcity

这是一个很长的拍摄,但我已经没有自己的想法了。

最近我的TeamCity构建开始向我抛出这个错误:

  

File.cs(Row,Col):错误CS0411:   方法的类型参数   “System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable,   System.Func)'无法推断出来   用法。尝试指定类型   明确的论点。

但我的代码(或项目配置)中没有错误。

如果我使用Visual Studio(2010)本身或者像构建代理那样使用MSBuild,它编译得很好。 (即使在构建机器上也是如此。)

仅供参考,代码如下所示:

 public ISet<Task> Tasks {get; set;}

 public IEnumerable<GradedTask> FindGradedTasks(){  
    return Tasks.Select(GetResult).Where(t=>t.HasResult).ToList(); // error   
 }

 public GradedTask GetResult(Task task) {  
    return new GradedTask(this, task);  
 }

之前有人见过这样的事吗? 可能导致此行为的原因是什么?

1 个答案:

答案 0 :(得分:2)

似乎您正在使用ISet接口,但它仅在.NET 4.0中定义

TeamCity是绝对正确的。 这是VS bug。 我们被这个打败了。意外重塑器引入可选参数。 VS编译就好了。 但TeamCity不是。