0

次のコードを含む .NET 5 クラス ライブラリを作成しています。

public T[] ConvertToArray<T>(BitmapFrame frame, int samplesPerPixel) where T:struct
{
    var pixelWidth = frame.PixelWidth;
    var array = new T[pixelWidth  * frame.PixelHeight * samplesPerPixel];
    var stride = pixelWidth * Marshal.SizeOf(typeof(T)) *samplesPerPixel;
    frame.CopyPixels(array,stride,0);//this line prevents the code from compiling
    return array;
}

の行でframe.CopyPixels、次のコンパイル エラーが発生します。

CS7069 タイプ 'Freezable' への参照は、それが 'WindowsBase' で定義されていると主張していますが、見つかりませんでした。モジュール 'WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf385ad364e35' を参照する必要があります

このパスから WindowsBase.dll への参照を追加しようとしています: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.8\WindowsBase.dll

しかし、次のエラーが表示されます: 参照が無効であるか、サポートされていません

奇妙な点は、Freezable がMicrosoft のドキュメント の.NET 5 の下にリストされていることです。おそらく問題は、.NET Framework 用の WindowsBase.dll を使用していることですが、.NET 5 バージョンがどこにあるのかわかりません。

これを解決してコードをコンパイルする方法はありますか?

ありがとう!

4

1 に答える 1