C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3 プロジェクトで[Unpackaged]でデバッグした際に[System.Runtime.InteropServices.COMException: ‘クラスが登録されていません(0x80040154(REGDB_E_CLASSNOTREG))’]が表示される場合の対処法です。
‘クラスが登録されていません(0x80040154(REGDB_E_CLASSNOTREG))’
Visual Studioの[WinUI3]プロジェクトを作成すると実行するビルドに[Packaged]と[Unpackaged]が用意されています。
[Unpackage]を選択して実行した際、次の例外が発生する場合があります。[System.Runtime.InteropServices.COMException: ‘クラスが登録されていません(0x80040154(REGDB_E_CLASSNOTREG))’]
アプリケーション[Packaging]の変更
以前に紹介した[プロジェクトファイルの編集]する方法もありますが、今回は[プロジェクトのプロパティ]で[Packageing]項目を無効にすることでエラーが回避できます。
具体的には次の手順で行います。
1.[ソリューション エクスプローラー]の[プロジェクト]を右クリックして表示されたポップアップメニューで[プロパティ]を選択します。
2. 表示されたプロパティの一覧から[アプリケーション|依存関係|Packaging]の[MSIX Packaging]の[Enables MSIX Packaging for this Project]を無効(チェックを外す)にします。
3. 再度ビルドを行います。
ビルド後に実行して例外が発生するか確認します。
まとめ
今回は、短い記事ですが、WinUI3 プロジェクトで[Unpackaged]でデバッグした際に[System.Runtime.InteropServices.COMException: ‘クラスが登録されていません(0x80040154(REGDB_E_CLASSNOTREG))’]が表示される場合の対処法について紹介しました。
WinUI 3で[Unpacked]のデバッグ時にエラーが発生する人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。