none
C++のデザイナで、CodeDOM parser error RRS feed

  • 質問

  • VisualStudio 2008 を使っています。

    フォームデザイナで、突然以下のエラーが出て編集できなくなってしまいました。
    修復方法が見つからず、困っています。

    ----------------------------------------

    C++ CodeDOM parser error: Line: 62, Column: 20 --- Unknown type 'TestProject.RenderBox'. Please make sure that the assembly that contains this type is referenced. If this type is a part of your development project, make sure that the project has been successfully built.

    場所 Microsoft.VisualC.CppCodeParser.OnMethodPopulateStatements(Object sender, EventArgs e)
    場所 System.CodeDom.CodeMemberMethod.get_Statements()
    場所 System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize
    (IDesignerSerializationManager manager, CodeTypeDeclaration declaration)
    場所 System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad
    (IDesignerSerializationManager manager)
    場所 Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
    場所 System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)

    --------------------------------------


    デザイナによって生成されたコードには、一切触っていません。

    フォームを新しく作り、そこに自前のユーザーコントロールRenderBox(エラーが出ているフォームにも貼っている)を挿入しようとすると、読み込みエラーが発生し、ツールボックスからRenderBoxが削除されます。
    (リビルドすると再出現します。)

    ならばと思い、試しに新しいユーザーコントロールを作成し、フォームに貼ってみると、RenderBoxと同じ現象が起こり、ツールボックスから削除されます。

    自前ユーザーコントロール以外のコントロールは、普通に貼ることができます。


    どなたか、ご教授ください。
    よろしくお願いします。

    ------------------------------
    追記:

    原因がつかめました。
    アンマネージドのライブラリを使用していたため、試行錯誤の過程で、プロジェクトのプロパティ→構成プロパティ→全般→共通言語ランタイムサポート を、「/clr」に変えていたためでした。

    しかし、なぜ、純粋MSILでないとユーザーコントロールが使えないのか、また、使える方法は無いのか。疑問が残りました。
    そういえば、デザイナでエラーになっていても、コンパイルは通っていたので、デザイナを使わずコードでコントロールを追加すれば、良いかもしれません。

    2009年10月22日 8:37