エラー 1150 genasm.exe(1):error タイプの終了中にエラーが発生しました。メソッド「DoParse」
-
02-07-2019 - |
質問
oOo 非常に興味深いビルドの問題です。コンパクトなフレームワークは、構築中に時々おかしくなることがあります。通常、xmta ファイルをいじるときですが、このシナリオで問題が発生するのを見たのはこれが初めてです。
抽象メソッドを使用して抽象基本クラスを作成しました。これをコア DLL の 1 つに置きました。これでよかったです。次に、それから継承した「後で」.dll を作成します。ここで、次のエラーが発生します。
エラー 1150 genasm.exe(1):エラーエラーファイナライズタイプがありました。メソッド「DOPARSE」タイプの「MyomanyName.platformName.productname.configuration.configurationParser」からのアセンブリ 'uicore.windowsce.asmmeta、version = 1.0.3187.17348、culture = neutral、publickeytoken = null'は実装を持っていません。UIコア
はい、このクラスにこのメソッドを実装しました。また、完全なクリーンと再構築、およびVSを閉じて再起動することも試しました。
興味があるので、少し珍しい「オブジェクトがオブジェクトのインスタンスに設定されていません」という警告もあります。
アップデート: メソッドを抽象ではなく仮想にすると、問題はなくなります。
アップデート:
- CF2.0SP1
- Visual Studio 2005 SP1
- この方法は一般的ではありません
- ただし、このオブジェクトのコンストラクターにジェネリック メソッドを持つオブジェクトを与えます。
解決 3
メソッドを抽象ではなく仮想にすると、問題はなくなります。
他のヒント
Visual Studio 2005/2008 の genasm の問題は、asmmeta ファイルを生成するために型をインスタンス化する必要があるため、残念ながらパブリック抽象型を持つことができないことです。
これをチェックして MSDN スレッド 同様の問題があります(ジェネリック医薬品を使用)。いくつかの回避策についても説明されています。
これが関連するかどうかはわかりませんが、DesignTimeAttributes.xmta ファイルを含めると同様の問題が発生します。
基本フォームを使用し、それを継承している場合は、その DesignTimeAttributes を取得することになります。デザイナーにはバグがあり、継承されたフォームがまったく表示されないため、これは修正の一部として生成されます。
この問題は、プロジェクトからファイルを除外することで解決できます。