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

質問
-
はじめまして。
タイトルの通り、プラットフォームをx64にした場合に、ユーザーコントロールを追加したフォームの
デザインが出来ないという問題に遭遇しました。
実行した手順は以下の通りです。
1. Windowsフォームアプリケーションを新規作成( 初めに設定されるプラットフォームはx86のみ )
2. x86のまま、ユーザーコントロールを追加( myControl.cs と命名 )
3. x86のまま、myControl のコードを表示する(これをしないと、次の手順でツールボックスに myControl が出現しない!?)
4. x86のまま、プロジェクトをビルドする(ツールボックスに myControl を出現させる)
5. x86のまま、myControl をフォーム( Form1.cs )に追加
6. x86のまま、リビルドが成功することを確認
7. 構成マネージャを表示して、プラットフォームにx64を新規作成( 作成時の「設定のコピー元」はx86 )
8. プラットフォームをx64に変更して、プロジェクトをリビルド
このリビルドの後、Form1 のデザイン画面がエラー画面に切り替わり、デザインができなくなります。
またその画面には以下のメッセージが表示されます。
「 変数 'myContorl1' は宣言されていないか、または割り当てられていません 」
何が原因でこのようなことが発生するのでしょうか?
ちなみにこの時のリビルドは成功しているようで、プロジェクトを実行することはできます。
また、この件について色々調べていたところ、以下のURLを発見しました。
http://msdn.microsoft.com/ja-jp/library/ms171843%28v=vs.80%29.aspx
このページ内の「 デザイン時エラー :"値を null にすることはできません。パラメータ名: 'コンポーネント名'" 」に
以下のような記述があります。
「 Visual Studio のデザイン環境では、64 ビットのコンポーネントはサポートされていません。 」
この記述は今回の件に、なにか関係があるでしょうか?
以上です。
わかる方がいらっしゃいましたら、ご回答よろしくお願いします。
回答
-
デザイン時に、そのユーザーコントロールを含むアセンブリが Visual Studio によって読み込まれることでコントロールの配置、表示、シリアライズなどができるようになっています。
しかし、Visual Studio はすでに指摘のあるとおり、x86 アプリケーションです。このため、x64 のアセンブリを読み込むことができず、エラーになっているのではないでしょうか。
質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
すべての返信
-
デザイン時に、そのユーザーコントロールを含むアセンブリが Visual Studio によって読み込まれることでコントロールの配置、表示、シリアライズなどができるようになっています。
しかし、Visual Studio はすでに指摘のあるとおり、x86 アプリケーションです。このため、x64 のアセンブリを読み込むことができず、エラーになっているのではないでしょうか。
質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。