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

  • 質問

  • はじめまして。

     

    タイトルの通り、プラットフォームを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 ビットのコンポーネントはサポートされていません。 」

     

    この記述は今回の件に、なにか関係があるでしょうか?

     

     

    以上です。

    わかる方がいらっしゃいましたら、ご回答よろしくお願いします。

     

    2011年12月9日 9:47

回答

  • >何が原因でこのようなことが発生するのでしょうか?

    Visual Studio は x86 アプリケーションなので

    >「 Visual Studio のデザイン環境では、64 ビットのコンポーネントはサポートされていません。 」

    ということなんじゃないでしょうか。

    • 回答の候補に設定 山本春海 2011年12月14日 1:14
    • 回答としてマーク 山本春海 2011年12月20日 8:54
    2011年12月9日 13:11
    モデレータ
  • デザイン時に、そのユーザーコントロールを含むアセンブリが Visual Studio によって読み込まれることでコントロールの配置、表示、シリアライズなどができるようになっています。
    しかし、Visual Studio はすでに指摘のあるとおり、x86 アプリケーションです。このため、x64 のアセンブリを読み込むことができず、エラーになっているのではないでしょうか。
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答の候補に設定 山本春海 2011年12月14日 1:14
    • 回答としてマーク 山本春海 2011年12月20日 8:54
    2011年12月9日 14:22
    モデレータ

すべての返信

  • >何が原因でこのようなことが発生するのでしょうか?

    Visual Studio は x86 アプリケーションなので

    >「 Visual Studio のデザイン環境では、64 ビットのコンポーネントはサポートされていません。 」

    ということなんじゃないでしょうか。

    • 回答の候補に設定 山本春海 2011年12月14日 1:14
    • 回答としてマーク 山本春海 2011年12月20日 8:54
    2011年12月9日 13:11
    モデレータ
  • デザイン時に、そのユーザーコントロールを含むアセンブリが Visual Studio によって読み込まれることでコントロールの配置、表示、シリアライズなどができるようになっています。
    しかし、Visual Studio はすでに指摘のあるとおり、x86 アプリケーションです。このため、x64 のアセンブリを読み込むことができず、エラーになっているのではないでしょうか。
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答の候補に設定 山本春海 2011年12月14日 1:14
    • 回答としてマーク 山本春海 2011年12月20日 8:54
    2011年12月9日 14:22
    モデレータ
  • 返信が遅れてすいません。

    なるほど、結局64ビットではデザインはできないということですね。

    ありがとうございました。

    2011年12月15日 0:51