Ошибка компиляции MSBuild - PullRequest
       0

Ошибка компиляции MSBuild

4 голосов
/ 27 сентября 2011

Я получаю сообщение об ошибке при компиляции проекта VB .NET с использованием командной строки MSBuild.Запуск из 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))))

Почему MSBuild не работает, когда DevEnv / Visual Studio нет?И почему это вообще проблема?Это выглядит хорошо для меня .... ЕДИНСТВЕННАЯ вещь, которую я вижу интересной в этой строке, - это то, что Invoke принимает объект класса Delegate (не строго типизированный делегат) ... поэтому в C # я не смог бы использовать лямбдувыражение, где я сейчас нахожусь в VB .NET (мне нужно сделать что-то вроде нового действия (() => ...)

1 Ответ

0 голосов
/ 02 июля 2012

Я полагаю, что вы смешиваете версии .NET.

System.Windows.Threading.Dispatcher имеет перегрузку с одним аргументом метода Invoke в .NET 4.5. В .NET 4.0 или более ранней версии все доступные перегрузки принимают два или более аргумента, которые затем выводятся из правила и выдают сообщение об ошибке, которое вы видите.

Поэтому я предполагаю, что devenv, который вы выполняете, является бета-версией VS2012, тогда как msbuild - это нечто более традиционное.

Вы сможете устранить несоответствие, настроив переменную среды Path.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...