这是一个很长的拍摄,但我已经没有自己的想法了。
最近我的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);
}
之前有人见过这样的事吗? 可能导致此行为的原因是什么?
答案 0 :(得分:2)
似乎您正在使用ISet接口,但它仅在.NET 4.0中定义
TeamCity是绝对正确的。 这是VS bug。 我们被这个打败了。意外重塑器引入可选参数。 VS编译就好了。 但TeamCity不是。