MSBuild编译错误奇怪

时间:2011-09-27 04:40:09

标签: .net vb.net visual-studio msbuild

使用MSBuild命令行编译VB .NET项目时出错。从devenv运行完全正常:

error BC30518: Overload resolution failed because no accessible 'Invoke' can be called with these arguments:

有问题的一行:

  Windows.Application.Current.Dispatcher.Invoke(Sub() InteractionManager.Current.DisplayException((DirectCast(e.ExceptionObject, Exception))))

为什么当DevEnv / Visual Studio没有时,MSBuild会对此感到不满?为什么这是一个问题呢?它对我来说很好....我对这一行感兴趣的唯一的事情是Invoke接受一个Delegate类对象(不是一个强类型的委托)...所以在C#中,我将无法使用lambda我现在在VB .NET中的表达式(我需要做一些像新的Action(()=> ...)

1 个答案:

答案 0 :(得分:0)

我相信你正在混合.NET版本。

System.Windows.Threading.Dispatcher在.NET 4.5中有Invoke方法的单个参数重载。在.NET 4.0或更早版本中,所有可用的重载都会带有两个或多个参数,然后将这些参数排除在外并提供您看到的错误消息。

因此,我假设您正在执行的devenv是VS2012测试版,而msbuild更常规。

您应该可以通过调整Path环境变量来解决差异。