SkiaSharp.dll が使用できない

タグの編集
投稿者 ASKR  (社会人) 投稿日時 2024/10/12 02:28:32
環境:Visual Studio Express 2017 for Win V15.7.4
言語:VB.Net
webP形式の画像を描画するPGを作成しようと思い、SkiaSharpを使用して画像データを読ませるコードを作ったところ
以下のエラーが出てしまいました。
「DLL 'libSkiaSharp' を読み込めません:指定されたモジュールが見つかりません。 (HRESULT からの例外:0x8007007E)」
コンパイルは通っているようなので、コードの問題ではなくdllが読み込めていないと思うのですが、どうやったらSkiaSharpのdllが使えるようになるでしょうか?

NuGetパッケージマネージャーから、SkiaSharpおよびSkiaSharp.NativeAssets.Win32はインストール済み
binフォルダ配下にSkiaSharp.dllがあることも確認済みです。
投稿者 KOZ  (社会人) 投稿日時 2024/10/12 03:47:44
VS2019 で試してみましたが、特に問題は発生しませんでした。
VS2017 を使うなら、最新バージョンでなく、少し古いバージョンを使ってみては?
投稿者 ASKR  (社会人) 投稿日時 2024/10/13 00:33:59
>KOZさん
返信ありがとうございます。
環境が悪いのかと思ってVisualStudioを新しいバージョンでインストールし直しましたが、結果は変わりませんでした

Microsoft Visual Studio Enterprise 2022 (64 ビット) - Current
Version 17.11.5
下記のコードでエラーになります。エラーの内容は最初に描いたものと同じでした。
Using skImage1 As SKBitmap = SKBitmap.Decode(targetFileInfo.FileBuffer)

NuGetパッケージマネージャーでSkiaSharpを導入する以外に何かやることがあるんでしょうか?

※前回書き洩らしていたんですが、自作のPGは32ビットで動かしています(関係あるかは分かりませんが)
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2024/10/13 01:28:18
.NET のプロジェクトでしょうか、.NET Framework のプロジェクトでしょうか。

フレームワーク バージョンやライブラリ バージョンについての言及が無いようですが、
もしかして、「.NET Framework 4.6.2 未満」で実行しているとか…。
https://github.com/mono/SkiaSharp/issues/2728
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2024/10/13 16:32:13
.NET Framework 4.6 + SkiaSharp 2.80.2 (or 2.88.0 preview 155) の組み合わせにおいては
「libSkiaSharp.dll ファイルを手動で bin フォルダーに配置」することで動作したようです。
https://github.com/mono/SkiaSharp/issues/1869

.NET Framework のバージョンが古いわけでも無いのに先のエラーとなる場合は、
実行環境のバージョンについてもう少し具体的な情報を提示いただけますか?
投稿者 ASKR  (社会人) 投稿日時 2024/10/13 19:26:49
>魔界の仮面弁士さん
古い環境とソースを引っ張り出してきたので、フレームワークはかなり古く4.6.1でした。
フレームワークを4.8にしてビルドし直したところ、dllの手動配置もなくそのまま動くことを確認しました。
どこかでSkiaSharpはFw4.6で動くと聞いていたのでそれ以上調べていませんでした。すみません。

情報ありがとうございました。