.NET内核与系统绘图

rfbsl7qr  于 2023-01-22  发布在  .NET
关注(0)|答案(6)|浏览(167)

我尝试在面向net46的.net core控制台应用程序中引用System.Drawing,但程序集不存在。根据MS,如果您使用dotnetcore,System.Drawing不可用。但如果您引用完整的.net framework,则应该能够使用它
这是我的项目. json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

    "dependencies": {

    },

  "frameworks": {
    "net46": {
    }
  }
}

知道是什么问题吗

gzjq41n4

gzjq41n41#

我知道这是旧的,但是现在有一个库的端口叫做System.Drawing.Common。试着用nuget安装那个。
为了实现这一点,有一个名为Windows Compatibility Pack的元包。然而,这个元包包括了很多很多与Windows相关的API(作为包分发)。
来源:https://developers.de/2018/01/22/how-to-use-system-drawing-in-net-core/

6qfn3psc

6qfn3psc2#

添加NuGet参考Microsoft.Windows.Compatibility
注意:标记“包括预发布”
当然,只有在预发布包适合您的情况下,它才起作用。

46qrfjad

46qrfjad3#

System.Drawing不是ASP.NET的好选项
如果你想要图形操作,我建议使用ImageSharp(https://github.com/JimBobSquarePants/ImageSharp)在.Net核心或ImageProcessor(http://imageprocessor.org/)/ ImageResizer(https://imageresizing.net/)在.Net框架
此外,如果您确实需要使用System.Drawing,请将project.json中的框架更改为netstandard1.6,并添加依赖项"NETStandard.Library": "1.6.1"

66bbxpm5

66bbxpm54#

当您希望仅asp.net在.NET Full Framework上使用www.example.com核心时,可以引用旧类库,如下所示

{
  "version": "1.0.0-*",

  "frameworks": {
    "net452": {
      "dependencies": {
      },
      "frameworkAssemblies": {
        "System.Drawing": "4.0.0.0",
      }

    }
  }
}
pw9qyyiw

pw9qyyiw5#

我可以用一个名为SkiaSharp的多平台库来替换System.Drawing,如果你在linux上运行,你也可以安装this nuget,这样你就不必手动安装依赖项了。

tp5buhyn

tp5buhyn6#

适用于.NET 6核心

install Aspose.Drawing.Common

相关问题