Подтвердить что ты не робот

Что неправильно с потреблением ConfiguredTaskПолезно из класса PortableClassLibrary в Debugger из MSTest Runner или Console App?

Примечание. Это только ошибка времени отладки, но очень странная.

Проблема:

Во время работы с приложением Debugger и вызовом метода, который открывается в отдельной переносной библиотеке, возвращая ConfiguredTaskAwaitable, мы получаем InvalidProgramException.

Воспроизвести его:

Имея 2 проекта:

  • PortableClassLibrary (поддержка .Net 4.5, Windows Store, Windows Phone 8) с 1 классом:

    public class Weird
    {
        public static ConfiguredTaskAwaitable GetConfiguredTaskAwaitable()
        {
            return new ConfiguredTaskAwaitable();
        }
    }
    
  • ConsoleApplication с кодом:

    static void Main(string[] args)
    {
        Weird.GetConfiguredTaskAwaitable();
    }
    

Примечания:

  • замена ConfiguredTaskAwaitable на ConfiguredTaskAwaitable<T> (общая версия) устраняет эту странную проблему.
  • использование этого метода в WP8 или Win8 в приложении Debugger отлично работает.

В настоящее время это вызывает проблемы, из-за которых я не могу запустить тесты модулей в разделе "Отладчик". Я вынужден изменить свою реализацию "ObjectUnderTest" для возврата общего ConfiguredTaskAwaitable<T>, что отлично подходит для реального проекта, но все же является лишь обходным решением.

Вопрос:

Кто-нибудь знает причину этой ошибки? Это определенно связано с магией портативной библиотеки классов.

4b9b3361

Ответ 1

Используете ли вы Visual Studio Ultimate 2012 с включенным IntelliTrace? Это выглядит как ошибка, которая должна быть исправлена ​​в последнем CTP Visual Studio 2012, обновлении 2 и в будущих выпусках.

Вы можете подтвердить, что это проблема (и обходите ее до получения исправления), перейдя в Инструменты/Параметры/IntelliTrace и отключив "Включить IntelliTrace".