如何在 VS2017 中使用 ImageSharp 2.0.0 新建 Image<TPixel>

How to new an Image<TPixel> with ImageSharp 2.0.0 in VS2017

按照 the Getting Started page 的文档(虽然没有更新的语言功能),我有以下代码:

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;

public class Test
{
    public void CreateImage()
    {
        using (Image<Rgba32> image = new Image<Rgba32>(100, 100))
        {
            // code
        }
    }
}

我看到 Rgba32 的两种情况都带有下划线并带有错误消息:

The type 'SixLabors.ImageSharp.PixelFormats.Rgba32' must be valid unmanaged type (simple numeric, 'bool', 'char', 'void', enumeration type or non-generic struct type with all fields of unmanaged types at any level of nesting) in order to use it as a type argument for 'TPixel' parameter.

据我所知,上面的代码与示例代码等效且完整。是否需要一些与非托管类型相关的额外配置才能使其正常工作?

(这看起来可能与 this VB issue on GitHub 有关,但我的项目是 C# 7.0 / .Net Standard 2.0)

原来是语言版本问题

项目在高级构建设置中默认设置为“C# 主要最新版本”(在 VS2017 中为 7.0)。

将其更改为“C# 7.3”修复了错误消息并允许构建成功。

(猜测它与该版本中添加的 unmanaged 约束有关 - version history, but is in this blog post 中未提及名称。)