MAUIでCS8795が発生するときの解消方法

MAUIでCS8795が発生する

MAUIでCS8795が発生するときの解消方法

xamarinのサポートが終了を迎えるため、現在MAUIへの移行を進めているのですが、毎度毎度発生する下記のエラーについて対処をまとめたいと思います。

CS8795 部分メソッド ‘XXXXX’ にはアクセシビリティ修飾子が指定されているため、実装部分が必要です。

XamarinのDependencyServiceのように、同じメソッドでプラットフォームごとに処理を分ける方法を実装していると発生します。
Microsoftのページ通りに実装しても、なぜかエラーが発生するのです。。
ちなみにエラーが発生しますが、デバックモードであれば問題なく稼働しますが、リリースビルドをすると止まってしまいます。
これを今回は解消していきます。
ちなみにプラットフォーム別の処理を実装する方法はこちらが参考になります。


対象以外のプラットフォームを取り除く

方法としてはタイトル通りで、対象外のプラットフォームをコンパイル対象から外します。
なお、対象とするプラットフォームにはすべて実装できているものとします。
下記順番に実施していきます。(後半は念のため)

  1. プロジェクトのプロパティから取り除く
  2. 下記の通りプロジェクトのプロパティから、対象外のプラットフォームのチェックを外します。

  3. .csprojからも取り除く
  4. .csprojからも下記のように対象外とするプロジェクトをコメントアウトします。

  5. Platforms配下のフォルダを削除
  6. ここまでする必要はなさそうですが、上記までで対象外としたプラットフォームごとのフォルダを削除します。

上記3点の対応を実施したら、Visual Studioを再起動します。(可能ならobjとbinを削除しておくと良い)
再起動が完了したらソリューションのリビルドを実施して作業完了です。


さいごに

今回はMAUIで発生する「CS8795」の解消方法をまとめました。
Xamarinであればプラットフォームごとにビルド対象が分かれていたので、この事象はほとんど発生しなかったはずですが、MAUIからすべてのプラットフォームが1つのプロジェクトにまとまっているため対象外のプラットフォームも影響し始める事象が発生してしまいます。
正直面倒なのでどうにかしてほしいです。。

もし同じ事象で困っている方の参考になれば幸いです。
今回はこの辺で、ではまた!

コメント

このブログの人気の投稿

Power Automateでファイル名から拡張子を取得

PowerAppsで座席表を作成する

Power AutomateでTeamsのキーワードをトリガーにする