无法在调试器中查看ImmutableArray的内容

时间:2018-11-12 16:26:29

标签: c# debugging visual-studio-2017 immutablearray

我有以下内容:

  • 使用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();
        }
    }
}

0 个答案:

没有答案