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