首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么无法删除System.Drawing并用NuGet包System.Drawing.Common替换

无法删除System.Drawing并用NuGet包System.Drawing.Common替换的原因是因为System.Drawing是.NET Framework的一部分,而System.Drawing.Common是.NET Core的一部分。这两个库虽然都提供了类似的功能,但它们之间的实现方式和依赖项有所不同。

首先,System.Drawing是在Windows上的GDI+库的基础上实现的,主要用于处理图形和图像。它的优势在于提供了丰富的绘图和图像处理功能,可以轻松处理各种图像格式,并提供了一些基本的绘图类,例如Bitmap和Graphics。

然而,System.Drawing在使用时依赖于GDI+,这意味着它只能在Windows操作系统上运行,并且不适用于跨平台的.NET Core应用程序。为了解决这个问题,Microsoft推出了System.Drawing.Common作为替代方案。System.Drawing.Common是跨平台的,可以在Windows、Linux和macOS等操作系统上使用,并且适用于.NET Core应用程序。

要使用System.Drawing.Common,您需要将项目迁移到.NET Core,并修改代码以适应新的API和命名空间。此外,System.Drawing.Common也有一些不同的依赖项,您需要确保这些依赖项在您的项目中正确安装。

对于无法删除System.Drawing的情况,可能有以下几个原因:

  1. 项目仍然在使用System.Drawing的功能,并且无法直接替换为System.Drawing.Common的功能。在这种情况下,您需要修改代码以适应新的API并迁移到.NET Core。
  2. 项目有其他依赖项,这些依赖项使用了System.Drawing,无法直接删除或替换。在这种情况下,您需要找到替代方案或解决方案来解决这些依赖项的问题。
  3. 项目是一个旧项目,无法迁移到.NET Core或使用System.Drawing.Common。在这种情况下,您可能需要继续使用System.Drawing,并考虑其他方法来解决跨平台问题。

对于使用System.Drawing.Common的优势和应用场景,它的主要优点是跨平台性和适用于.NET Core应用程序。它可以在各种操作系统上使用,并且与.NET Core的其他功能和库兼容。它适用于需要在不同平台上运行的应用程序,特别是那些需要处理图形和图像的应用程序。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云容器服务(Tencent Kubernetes Engine,TKE):https://cloud.tencent.com/product/tke
  • 腾讯云函数计算(Tencent Serverless Cloud Function):https://cloud.tencent.com/product/scf
  • 腾讯云云服务器(Tencent Cloud Virtual Machine,CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(Tencent Cloud Object Storage,COS):https://cloud.tencent.com/product/cos
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus .NET Core Mono Win32 Linux ……)

关于 TypeForwarding 可以阅读这篇博客了解:C# dotnet TypeForwarding 的用法,微软也有其他通过此方式做的 NuGet ,可参见 微软官方的 NuGet 是如何做到同时兼容新旧框架的...我们去 nuget.org 上下载下来 System.Drawing.Common 拆开来看,会发现这个有两个很关键的文件夹: lib runtimes 其中,lib 里面包含这些不同的目标框架:...文件,是个空的文件,仅用来告诉 NuGet 这个支持这些框架安装,但不引用任何 dll。...然而 Unity 不能原生支持 NuGet ,而 System.Drawing.Common 要能够在编译时自动选择正确的 dll 去引用,是需要 3.4 版本以上的 NuGet 程序来支持的。...如果不能完全实现此版本 NuGet 的功能,那么编译时是无法将正确的 dll 拷贝到输出目录的。不幸的是,目前流行于 Unity 的第三方 NuGet 管理器不能正确拷贝此的 dll 到输出目录。

1.9K60
  • .NET Core 图片操作在 LinuxDocker 下的坑

    在 .NET Core 的早期版本中,有 .NET 社区开发者实现了一些 System.Drawing 的 Image等类型实现的组件,比如 CoreCompat.System.Drawing、ZKWeb.System.Drawing...后来微软官方提供了一个组件 System.Drawing.Common实现了 System.Drawing 的常用类型,以 Nuget 的方式发布的。今天就围绕它来讲一讲这里面的坑。...但是官方镜像里面使用的软件源又是国外的地址,所以造成我们使用国内网络非常慢,进而造成整体构建过程非常慢。...EXPOSE 80 ENTRYPOINT ["dotnet", ""] (2)更换软件源为国内源 此方法请看我以前写的文章:Docker实用技巧之更改软件源提升构建速度 4.其他Linux...就比如你要是用 Image、Bitmap 类型,你就得安装 System.Drawing.Common ;或者你用的组件依赖了 System.Drawing.Common,比如 QRCoder。

    1.9K20

    纸壳CMS v3.5升级.Net 6

    更新日志: 升级运行环境到 .Net 6 #444 替换验证码生成方案,Linux上无需安装其它依赖 #445 footer / header 标签无法绑定数据 bug #446 将更新索引任务移到后台任务执行...可以使用以下命令更新发布程序到最新版本: dotnet tool update ZKEACMS.Publisher -g https://www.nuget.org/packages/ZKEACMS.Publisher...升级.Net 6之后,Razor视图的预编译不再分开为单独的dll,所以在部署的时候需手动删除项目下的所有的*.Views.dll文件以免发生一些未知错误。...另外我们建议删除根目录下的所有dll文件和依赖项,3.5版本的依赖项有所变更,这样可清除一些不必要的DLL文件,例如:System.Drawing.Common.dll。...由于System.Drawing.Common不再跨平台支持,因此我们移除了对它的依赖,换成了SixLabors.ImageSharp。

    54620

    Docker实用技巧之更改软件源提升构建速度

    大家用过.NET Core的人应该都知道,.NET Core 默认是不带 System.Drawing的,前期有第三方的实现,为我们提供了一个解决方案,现在官方也提供了一个,以nuget的方式发布,名为...System.Drawing.Common,实用这个可以正常的进行各种图片操作,比如生成图片验证码,二维码等等,但是如果我们将其发布到linux,将会出现异常:Unable to load DLL...,准备替换为网易提供的源 http://mirrors.163.com/ 三.问题解决--替换软件源 软件源的配置文件在基础镜像所用的Linux系统中路径为 /etc/apt/sources.list...,我们只需在执行 apt-get update命令之前,将我们编写好的使用网易源的配置文件进行替换就行了。...方法一 1.通过你所使用镜像官方提供的资料,查询出镜像所使用的Linux系统源路径以及配置文件内容 2.替换加速地址 方法二 1.使用你需要使用的镜像构建一个简单的程序,然后运行。

    1.9K20

    Docker实用技巧之更改软件源提升构建速度

    大家用过.NET Core的人应该都知道,.NET Core 默认是不带 System.Drawing的,前期有第三方的实现,为我们提供了一个解决方案,现在官方也提供了一个,以nuget的方式发布,名为...System.Drawing.Common,实用这个可以正常的进行各种图片操作,比如生成图片验证码,二维码等等,但是如果我们将其发布到linux,将会出现异常:Unable to load DLL...,准备替换为网易提供的源 http://mirrors.163.com/ 三.问题解决--替换软件源 软件源的配置文件在基础镜像所用的Linux系统中路径为 /etc/apt/sources.list...,我们只需在执行 apt-get update命令之前,将我们编写好的使用网易源的配置文件进行替换就行了。...方法一 1.通过你所使用镜像官方提供的资料,查询出镜像所使用的Linux系统源路径以及配置文件内容 2.替换加速地址 方法二 1.使用你需要使用的镜像构建一个简单的程序,然后运行。

    66900

    .NET 基金会项目介绍-System.Drawing Mono

    System.Drawing (Mono) System.Drawing 是一个跨平台的开源图形实现库,作为微软的 System.Drawing 名称空间下的绘图内容的可选方案。...项目详情 官方网站 项目源码 项目许可证: MIT 相关链接 参与贡献 开发文档 参与讨论 笔者简评 其属于 Mono 的一部分,笔者虽然无法理解为什么是单独的一个项目,但确真实存在。...英文介绍 System.Drawing (Mono) System.Drawing is a cross platform open source implementation of Microsoft...开发框架】 MvvmCross - 【客户端MVVM开发框架】 Nancy - 【Web开发框架】 .NET Core - 【Web开发框架】 Newtonsoft.Json - 【JSON处理库】 NuGet...Toolkit - 【WP 工具库】 Windows Template Studio - 【UWP 项目模板】 Windows Forms - 【客户端开发框架】 WiX Toolset - 【安装制作框架

    69700

    Paket 介绍

    问题来了,为什么替换NuGet? Paket 是一个用于 .NET 和 Mono 平台的包管理器,灵感来自于 Bundler。可与 NuGet 一起工作,可精确控制项目中所引用的各种软件。...所以可以肯定的是你想知道,"为什么我们需要更换掉NuGet?" Packet本质上是只需要NuGet的最基本的功能,并增加了一些额外的并且是不错的功能。...一方面,Paket使得你能够精确控制你的项目的依赖所发生的事情。如果不同的引用了不同版本的同一个依赖,比如说log4net,他们之间没有更多的冲突。...PAKET的来源是(NuGet或GitHub上)的/文件名,它可以从这些源下载。...为了让PAKET使用引用文件,只需--hard开关重新运行安装命令 \.paket\paket.exe install –hard 这将检查paket.references 文件并用这个文件来自动引用该项目相对应的库

    1.1K90

    win10 uwp 上传Nuget 让别人用我们的库 Nuget下载打包Nuget上传命令行使用Nuget

    我们打包 首先 nuget spec ? smms.nuspec 这个可以用文本打开,里面会自动替换 里面有 <?xml version="1.0"?...owners 拥有者:你可以随便写,但是在发布的时候会被你的nuget帐户名替代。 最低客户端版本:描述这个限制的最低nuget客户端版本。...,我就放空,不管,好像写的要在NuGet服务器上能找到,否则无法完成自动引用添加 我们可以在vs,Properties打开,写上我们名字和说明 ?...问题: 删除示例 nuspec 值。 说明: Tags 的值“Tag1 Tag2”是示例值,应将其删除。 解决方案: 请替换为适当的值或删除它,然后重新生成程序。...解决方案: 请替换为适当的值或删除它,然后重新生成程序。 把我们信息写后打包 nuget pack smms.csproj ?

    92810

    winform与cefsharp混合开发_winform窗体

    简介 CefSharp简单来说就是一款.Net编写的浏览器,方便你在Winform和WPF中内嵌的Chrome浏览器组件。...---- 部署过程细节截图 创建一个基础的Winform应用,并使用NuGet引用CefSharp。...使用Nuget添加引用,搜索CefSharp,添加CefSharp.WinForm,CefSharp.Winform依赖好几个,这块选择这一个安装就可以了,NuGet会自动帮你把其他依赖的一并下载好的...安装完你本地的Packages文件夹里有如下文件: 官方文档建议:安装完NuGet之后,关闭vs然后重新打开,避免VS自带的智能感知引用有问题 在简介方案上右键—》选择配置管理—》修改目标平台为...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除

    2.8K21

    Roslyn 如何在 Target 引用 xaml 防止文件没有编译

    也就是用户可以删除这个文件夹,一旦这个文件夹删了,那么文件夹里面的文件也就是无法编译通过,这时小伙伴就会过来打我 <Page Include="App.xaml" SubType="Designer...如果这时将会 MainWindow.xaml 放在了一个文件夹 View 只要有引用这个文件,无论有没设置是否隐藏,开发者都可以看到 View 文件夹,而且可以<em>删除</em>这个文件夹,如果<em>删除</em>了这个文件夹,那么就<em>无法</em>编译...但是如果放在 Target 里就<em>无法</em>看到引用的文件夹,也就<em>无法</em><em>删除</em>文件夹,通过这个方法可以让我使用源代码打包 如使用下面的代码,即使没有设置 MainWindow 不可见,用户也是看不见这个文件 <...源代码打包项目是为了解决很小的代码,都需要做出一个 <em>nuget</em> <em>包</em>,这个 <em>nuget</em> <em>包</em>是 dll 也就是软件会引用太多的 dll ,大家都知道如果引用的 dll 多了,软件启动速度也就是变慢了。...所以我就使用打包 <em>nuget</em> <em>包</em>但是引用的是源代码的方式,这样开发者在安装 <em>nuget</em> 之后可以快速调试安装的库的源代码。

    1.1K10

    Roslyn 如何在 Target 引用 xaml 防止文件没有编译

    也就是用户可以删除这个文件夹,一旦这个文件夹删了,那么文件夹里面的文件也就是无法编译通过,这时小伙伴就会过来打我 <Page Include="App.xaml" SubType="Designer...如果这时将会 MainWindow.xaml 放在了一个文件夹 View 只要有引用这个文件,无论有没设置是否隐藏,开发者都可以看到 View 文件夹,而且可以<em>删除</em>这个文件夹,如果<em>删除</em>了这个文件夹,那么就<em>无法</em>编译...,也就<em>无法</em><em>删除</em>文件夹,通过这个方法可以让我使用源代码打包 如使用下面的代码,即使没有设置 MainWindow 不可见,用户也是看不见这个文件 <Target Name="MoqakermirLaqouLurter...,这个 nuget 是 dll 也就是软件会引用太多的 dll ,大家都知道如果引用的 dll 多了,软件启动速度也就是变慢了。...所以我就使用打包 nuget 但是引用的是源代码的方式,这样开发者在安装 nuget 之后可以快速调试安装的库的源代码。

    73320

    使用Jenkins部署.Net Core遇到的几个坑

    排查:切换到服务器cmd下进行restore后发现,原来是nuget作怪,因为服务器无法找到部署在本地服务器的nuget ? 2.发布Nuget到官网 试着解决:试着把nuget发布到官网。...具体如何发布请跳转 新版本的发布需要增加License.txt,否则无法通过,配置如下:其中Licese是从github上拷贝过来的。...解决方法:关闭配置里的删除功能 6.构建的时候卡住在using GIT_ASKPASS to set credentials 解决方法: Step 1:開始 -> 命令提示字元 -> 滑鼠右鍵 ->...原因:该站点正在运行,dll被占用,无法进行替换覆盖 解决方法:   目前暂时还没有找到方法,后面再做补充…… Step8.无法删除的坑 ?...原因:该站点正在运行,无法进行替换覆盖 解决方法:把Delete workspace before build starts选项勾去掉,如下图: ?

    2.3K40

    VisualStudio 如何快速添加一个 Git Tag 推送

    熟悉这个方法可以快速给代码添加一个 Tag 号 配合 dotnet 配合 Gitlab 做自动推 Tag 时打包 NuGet 可以特别方便打 Tag 打包推送 为什么需要推送 Tag 才能打包?...我之前每次需要追踪某个 NuGet 对应的依赖库的源代码的版本的时候,都需要进入打包服务器,查看打包日志,在这样很坑玩了很久,公司的配置管理员干掉了服务器,删除了日志。...后面只能通过二分的方法,用了几天的开发才完成 所以看到了我上面的坑,小伙伴大概也就能知道为什么我期望将 Tag 和 NuGet 关联了 在我现在团队的约定里面,只要添加了 alpha 也就是预览版,就可以随意推送测试的...Tag 让服务器帮你打包 NuGet ,然后在其他的项目安装。...此时小 A 如果推送了代码,这个代码引用了小 A 本地生成的 NuGet 库,那么其他小伙伴将找不到这个 NuGet 库,无法构建通过 如果小 A 不推送代码,只是写了一个 commit 但是这个

    1.3K10
    领券