我正在尝试在'.NETFramework,Version = v4.5.2'应用程序中用C#编写一些单元测试,但是所有测试都会给出下一个错误:
'System.IO.FileNotFoundException:无法加载文件或程序集 'System.Drawing.Common,版本= 0.0.0.0,文化=中性, PublicKeyToken = cc7b13ffcd2ddd51'。系统找不到文件 指定。”
当我尝试安装System.Drawing.Common
时,我从NuGet软件包中收到下一个错误:
无法安装软件包“ System.Drawing.Common 4.5.1”。您正在尝试将此软件包安装到针对的项目中 '.NETFramework,Version = v4.5.2',但该软件包不包含任何与该框架兼容的程序集引用或内容文件。欲了解更多 信息,请与软件包作者联系。
我无法更改应用程序版本或框架(.NET Core 2.1),并且我在网上发现的任何其他窍门均无效(或产生了更多错误)。
帮助?
更新:我设法通过重新启动Visual Studio,将框架更改为4.6.1(以前无法做到)并添加引用来解决此问题。很抱歉,不清楚的解释,我是新手,对我来说Visual Studio的工作方式很神秘。谢谢大家
答案 0 :(得分:2)
有同样的问题。我已经克隆了解决方案https://github.com/barnhill/barcodelib。它有两个项目:库项目目标为.Net Standard 2.0,并引用System.Drawings.Common。示例项目取决于库,并且引用了System.Drawings.Common。由于相同的错误,示例项目无法编译。
我的解决方案是删除对nuget包中System.Drawings.Common的引用并读取它(单击“示例项目”>“管理nuget包”>“浏览已安装”,删除System.Drawings.Common包,然后将其重新添加) ,卸载项目,然后再次重新加载
对我有帮助。
答案 1 :(得分:0)
您可以尝试使用此处描述的一种库代替https://devblogs.microsoft.com/dotnet/net-core-image-processing/
您还可以尝试使用https://www.nuget.org/packages/CoreCompat.System.Drawing/并尝试将您的应用程序框架更改为.net standard 2.0?
答案 2 :(得分:0)
在NuGet中输入以下行: 安装包System.Drawing.Common-版本4.5.2
在.NET CLI中,放在: dotnet添加软件包System.Drawing.Common --version 4.5.2
在Paket CLI中,放在: paket添加System.Drawing.Common --version 4.5.2
答案 3 :(得分:0)
这有点奇怪,但是效果很好,所以我要提一下。我建立了一个小型vs 2017耳鼻喉控制台项目,该项目应该读取一个Oracle数据库。当我开始运行它时,出现了上面提到的System.Drawing.Common错误。这看起来很愚蠢,因为我根本没有做任何与Drawing相关的事情。在“管理Nuget程序包”中,我删除了Oracle.ManagedDataAccess驱动程序,并添加了Oracle.ManagedDataAccess.Core和System.Drawing.Common错误,并且我能够读取我的oracle数据库。因此,我建议您使用NuGet可能会捡拾一些您真正不需要的东西,并且如果您有任何选择可以使用NuGet软件包,请尝试其他软件包。对于我的组织如何为Visual Studio 2017企业管理nuget,这可能还有些怀疑。