x64 設定中にデザイナで UserControl を表示しようとするとエラーになる

先日、Visual C# 2010 上で UserControl を継承したコンポーネントをデザイナ経由で貼り付けていたら、「ビルドは成功するんだけど、デザイナ上で表示しようとするとエラーになる」と言う状況に遭遇しました。適当にググっていたら「作成したコンポーネントにデフォルトコンストラクタが定義されていない場合にエラーになる」と言う情報が結構ヒットしたので確認してみたのですが、特に問題なし。

どうしたものかなと悩んでいたのですが、最終的には「x64 で開発していたから」と言うものでした。

デザイン時に、そのユーザーコントロールを含むアセンブリVisual Studio によって読み込まれることでコントロールの配置、表示、シリアライズなどができるようになっています。しかし、Visual Studio はすでに指摘のあるとおり、x86 アプリケーションです。このため、x64 のアセンブリを読み込むことができず、エラーになっているのではないでしょうか。

x64プラットフォームで、ユーザーコントロールを使用したフォームのデザインが出来ない

自分の環境が 64bit 版 Windows である事と、リリースする際には一応 x86/x64 版を分けて出している事から、普段 Visual Studio で開発する際には x64 に設定している事が多いのですが、UserControl を使用するようなコーディングを行う時は x86 か Any CPU でやる方が無難のようです。

広告を非表示にする