使用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(()=> ...)
答案 0 :(得分:0)
我相信你正在混合.NET版本。
System.Windows.Threading.Dispatcher
在.NET 4.5中有Invoke
方法的单个参数重载。在.NET 4.0或更早版本中,所有可用的重载都会带有两个或多个参数,然后将这些参数排除在外并提供您看到的错误消息。
因此,我假设您正在执行的devenv
是VS2012测试版,而msbuild
更常规。
您应该可以通过调整Path
环境变量来解决差异。