如何在 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 中未提及名称。)
按照 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 中未提及名称。)