Visual Studio のデザイナー上で参照が必要な DLL をロードできずにエラーが発生します

現象
Visual Studio のデザイナー画面を開いた場合に、"変数 '***' は宣言されていないか、または割り当てられていません。" というエラーメッセージが表示され、デザイナー画面を表示できません。

原因
この現象は、デザイナー画面の表示時に、Visual Studio がコントロールの表示に必要なアセンブリをロードできない場合に発生します。

コントロールが複雑な継承関係や依存関係をもち、参照先の一つ以上のアセンブリを Visual Studio の実行プロセスである devenv.exe が、アセンブリの検索パス上から見つけることができない場合にこのような現象が発生します。

この現象は、アセンブリがネイティブ コードの DLL に依存し、当該 DLL を devenv.exe がロードできない場合にも発生します。
回避策
以下のいずれかの方法で、デザイナー画面でエラーが発生する現象に対処することが可能です。

  1. 対象のアセンブリを GAC に登録する方法

    Visual Studio が検索およびロードに失敗しているアセンブリが厳密名をもつ場合、当該アセンブリと依存するアセンブリを全てグローバル アセンブリ キャッシュ (GAC) に登録します。
    アセンブリを GAC に登録する方法については以下のドキュメントを参照してください。
    方法 : グローバル アセンブリ キャッシュにアセンブリをインストールする
    http://msdn.microsoft.com/ja-jp/library/vstudio/dkkx7f79.aspx

  2. デザイン モードでは依存関係のあるアセンブリを呼び出さないようにする方法

    Visual Studio が検索およびロードに失敗しているアセンブリを、デザイン モードでは使用しないようにコードを変更します。デザイン モードの判定には Component.DesignMode プロパティを使用します。

    コード例)
     
        public partial class Form1 : Form    {        ...        public void InitializeSomeObjects()        {            if (!this.DesignMode)            {         // DLL の参照が必要な処理                MyComplicatedClass obj = new MyComplicatedClass();            }        }    }
      
    DesignMode プロパティの詳細は以下のドキュメントを参照してください。
    Component.DesignMode プロパティ
    http://msdn.microsoft.com/ja-jp/library/system.componentmodel.component.designmode(v=vs.110).aspx

  3. アセンブリを配置したフォルダーを環境変数 PATH に設定する方法

    Visual Studio の起動時などに、PATH 環境変数にアセンブリを配置したフォルダーを追加します。
    以下のように、コマンド プロンプトから環境変数 PATH にフォルダーを追加し、Visual Studio の実行ファイルである devenv.exe を起動します。

    手順)
    Visual Studio の開発者コマンド プロンプトを起動し、以下のコマンドを実行して PATH を追加してからVisual Studio を起動します。
    > set path=%path%;<アセンブリを配置したフォルダーのパス>> devenv.exe

状況
 この動作は仕様です。 
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2903703 - 最終更新日: 09/29/2016 15:22:00 - リビジョン: 3.0

Microsoft Visual Studio 2008 Professional Edition, Microsoft Visual Studio 2010 Premium with MSDN, Microsoft Visual Studio 2010 Professional, Microsoft Visual Studio 2010 Ultimate, Microsoft Visual Studio 2012 Beta, Microsoft Visual Studio 2013 Preview

  • kbprb kbtshoot kbexpertiseinter kbexpertiseadvanced KB2903703
フィードバック