'System.Runtime.InteropServices.DllImportAttribute' をインスタンス メソッドに適用できません

非共有プロシージャは、 DllImportAttributeで宣言されます。

共通言語ランタイム (CLR) は、この属性とその EntryPoint プロパティを、.NET Framework の外部にあるアンマネージ ダイナミック リンク ライブラリ (DLL) で定義された置換プロシージャを指定すると認識します。 コードが DllImportAttribute が適用されるプロシージャを呼び出すと、共通言語ランタイムは代わりに指定されたアンマネージ プロシージャを呼び出します。

.NET Framework の外部のアンマネージ プラットフォームでは、.NET Framework と同じ方法で非共有プロシージャがサポートされないため、非共有プロシージャを使用してそれらのプロシージャと相互運用することはできません。

エラー ID: BC31529

このエラーを解決するには

  • プロシージャがクラスまたは構造体の各インスタンスに個別に適用する必要がない場合は、 Sharedとして宣言します。

  • プロシージャを Sharedできない場合は、このプロシージャの宣言から DllImportAttribute を削除します。

こちらも参照ください