У меня есть следующее:
- Использование Visual Studio 2017 (последняя версия)
- Использование ImmutableArray
- Сбой при использовании .Net Framework 4.7.1 ИЛИ 4.7.2 ( не .Net Core)
- Работает с использованием .Net Framework 4.7.0 или более ранней версии.
Проблема заключается в том, что если я остановлюсь в отладчике ипопробуйте проверить содержимое ImmutableArray<T>
, ничего не происходит.
Если я попытаюсь быстро просмотреть ImmutableArray<T>
, я получаю следующую ошибку:
Ошибка CS0012: тип«ValueType» определяется в сборке, на которую нет ссылок.Необходимо добавить ссылку на сборку «System.Runtime, версия = 4.0.20.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a».
Я могу исправить эту ошибку, перейдя в:
Инструменты -> Параметры -> Отладка -> Общие, включите «Использовать режим управляемой совместимости»
К сожалению, этот режим отключает некоторые другие функции, поэтому мой вопрос:
Есть ли способ заставить это работать без использования режима управляемой совместимости?
(Я подозреваю, что эта проблема может быть связана с тем фактом, что поддержка 4.7.1 или новее добавлена в Visual Studio с помощью отдельной загрузки.)
Мой пример тестового консольного приложения, которое я использовал:
using System;
using System.Collections.Immutable;
using System.Linq;
namespace ConsoleApp10
{
class Program
{
static void Main()
{
var t = test();
Console.WriteLine(t.Length); // Set breakpoint here: Cannot inspect 't'.
}
static ImmutableArray<int> test()
{
return Enumerable.Range(1, 10).ToImmutableArray();
}
}
}