web-dev-qa-db-ja.com

'.NETFramework、Version = v4.5.2'を使用するプロジェクトにSystem.Drawing.Commonをインストールするにはどうすればよいですか?

'.NETFramework、Version = v4.5.2'アプリケーションのC#でいくつかの単体テストを記述しようとしていますが、すべてのテストで次のエラーが発生します。

'System.IO.FileNotFoundException:ファイルまたはアセンブリを読み込めませんでした' System.Drawing.Common、Version = 0.0.0.0、Culture = neutral、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は神秘的な方法で機能します。みんな、ありがとう

3
Irina Gutanu

nuGetでこの行を入れてください:Install-Package System.Drawing.Common -Version 4.5.2

.NET CLIでput:dotnet add package System.Drawing.Common --version 4.5.2

paket CLI putで:paket add System.Drawing.Common --version 4.5.2

2
ayman lys

同じ問題があった。ソリューションを複製しました https://github.com/barnhill/barcodelib 。ライブラリプロジェクトには.Net Standard 2.0をターゲットとする2つのプロジェクトがあり、System.Drawings.Commonを参照します。サンプルプロジェクトはライブラリに依存し、System.Drawings.Commonへの参照があります。同じエラーのため、サンプルプロジェクトはコンパイルされませんでした。

私の解決策は、nugetパッケージのSystem.Drawings.Commonへの参照を削除してそれを読み取ることでした(サンプルプロジェクト> nugetパッケージの管理>インストールの参照をクリックし、System.Drawings.Commonパッケージを削除してから追加し直す)、プロジェクトをアンロードするそしてそれをもう一度リロードします

私を助けました。

1
Ivan P.

代わりに、ここで説明されているライブラリの1つを使用してみてください https://devblogs.Microsoft.com/dotnet/net-core-image-processing/

https://www.nuget.org/packages/CoreCompat.System.Drawing/ を使用して、アプリのフレームワークを.net標準2.0に変更しようとすることもできますか?

0
mietghar