2

oOo 非常にエキサイティングなビルドの問題です。コンパクトなフレームワークは、構築中に時々おかしくなります。通常、xmta ファイルをいじるときですが、このシナリオでうまくいかないのを見たのはこれが初めてです。

抽象メソッドを使用して抽象基本クラスを作成しました。これをコア dll の 1 つに配置しました。これは大丈夫でした。次に、「後で」.dll を継承します。今、私はこのエラーを受け取ります:

エラー 1150 genasm.exe(1) : エラー type のファイナライズ中にエラーが発生しました。アセンブリ 'UICore.WindowsCE.asmmeta、Version=1.0.3187.17348、Culture=neutral、PublicKeyToken=null' のタイプ 'MyComanyName.PlatformName.ProductName.Configuration.ConfigurationParser' のメソッド 'DoParse' には実装がありません。UIコア

はい、このメソッドをこのクラスに実装しました。また、完全なクリーンと再構築、およびVSの終了と再起動も試しました。

興味深いことに、「オブジェクトがオブジェクトのインスタンスに設定されていません」という警告もありますが、これは少し変わっています。

更新:メソッドを抽象化ではなく仮想化すると、問題はなくなります。

アップデート:

  • CF2.0 SP1
  • ビジュアル スタジオ 2005 SP1
  • メソッドは一般的ではありません
  • ただし、このオブジェクトのコンストラクターにジェネリック メソッドを持つオブジェクトを渡します。
4

3 に答える 3

2

Visual Studio 2005/2008 の genasm の問題で、asmmeta ファイルを生成するために型をインスタンス化する必要があるため、残念ながらパブリック抽象型を持つことはできません。

同様の問題でこのMSDNスレッドを確認してください(ジェネリックを使用)。いくつかの回避策も議論されています。

于 2008-09-22T12:44:21.607 に答える
1

これが関連するかどうかはわかりませんが、DesignTimeAttributes.xmta ファイルを含めると、同様の問題が発生します。

基本フォームを使用して継承している場合は、その DesignTimeAttributes を取得します。デザイナーにバグがあり、継承されたフォームがまったく表示されないため、これは修正の一部として生成されます..

プロジェクトからファイルを除外することで、これを解決できます。

于 2008-10-20T10:04:38.413 に答える
0

メソッドを抽象化ではなく仮想化すると、問題はなくなります。

于 2012-09-30T02:59:17.583 に答える