如何在dotnet核心中解决'System.MissingMethodException'

问题描述 投票:1回答:1

要复制,请执行以下步骤:

在终端/ cli中:

dotnet new console --language F# --name "sample"
cd sample
dotnet add package Accord.Imaging
dotnet add package CoreCompat.System.Drawing --version 1.0.0-beta006

下载以下image,然后放入项目文件夹。

Program.fs更改为包含以下代码:

// Learn more about F# at http://fsharp.org

open System
open System.Drawing
open Accord.Imaging.Filters

[<EntryPoint>]
let main argv =
    let bitmap = new Bitmap("sample8.jpg")
    let filter = new Grayscale( 0.2125, 0.7154, 0.0721 );
    let sourceImage = filter.Apply(bitmap)
    printfn "Hello World from F#!"
    0 // return an integer exit code

如何解决我收到的以下错误?

Unhandled Exception: System.MissingMethodException: Method not found: 'System.Drawing.Color[] System.Drawing.Imaging.ColorPalette.get_Entries()'.
   at Accord.Imaging.Image.SetGrayscalePalette(Bitmap image)
   at Accord.Imaging.Image.CreateGrayscaleImage(Int32 width, Int32 height)
   at Accord.Imaging.Filters.BaseFilter.Apply(BitmapData imageData)
   at Accord.Imaging.Filters.BaseFilter.Apply(Bitmap image)
   at Program.main(String[] argv) in /dev/sample/Program.fs:line 11
f# .net-core system.drawing accord.net
1个回答
0
投票

您需要使用Corecompat.System.Drawing.v2 version=5.2.0-preview1-r131程序集而不是CoreCompat.System.Drawing version version=1.0.0-beta006

在相关的.fsproj文件中,包括:

<PackageReference Include="CoreCompat.System.Drawing.v2" Version="5.2.0-preview1-r131" />

并删除与此冲突的任何其他CoreCompat.System.Drawing程序集的引用,并在您的解决方案中还原nuget。

© www.soinside.com 2019 - 2024. All rights reserved.