壊れた参照のトラブルシューティング

アプリケーションが壊れた参照を使用しようとすると、例外エラーが生成されます。 このエラーの主原因は参照されたコンポーネントが見つからないことですが、参照が壊れていると判断される状況はいくつかあります。 次に例を示します。

  • プロジェクトの参照パスが誤っているか、不完全である場合

  • 参照するファイルが削除されている場合

  • 参照するファイルの名前が変更されている場合

  • ネットワーク接続または認証が失敗した場合

  • コンピューターにインストールされていない COM コンポーネントへの参照である場合

これらの問題に対する解決策を次に示します。

注意

アセンブリ内のファイルは、プロジェクト ファイルの絶対パスによって参照されます。 そのため、複数の開発者がいる環境で作業している場合に、参照するアセンブリがユーザーのローカル環境で見つからないことがあります。 この場合には、そういったエラーを回避するためにプロジェクト間参照を避けてください。 詳細については、「方法: Visual Studio で参照を追加または削除する」および「アセンブリを使用したプログラミング」を参照してください。

参照パスが誤っている

プロジェクトが、別のコンピューター間で共有されている場合に、コンポーネントが各コンピューターの別のディレクトリに格納されていると参照が見つからないことがあります。 参照は、コンポーネント ファイルの名前 (たとえば、MyComponent) で格納されています。 参照がプロジェクトに追加されると、コンポーネント ファイルのフォルダーの場所 (たとえば、C:\MyComponents\) がプロジェクトの ReferencePath プロパティに追加されます。

プロジェクトを開くと、プロジェクトは参照パスにあるディレクトリ内を探して、参照されているコンポーネントを見つけようとします。 コンポーネントを別のディレクトリ (たとえば、D:\MyComponents\) に格納しているコンピューター上でプロジェクトを開いた場合は、参照が見つからず、タスク一覧にエラーが表示されます。

この問題を修復するには、壊れた参照を削除し、[参照の追加] ダイアログ ボックスで参照を再度作成します。 または、プロジェクトのプロパティ ページの [参照パス] 項目を使用して、リスト内でフォルダーの正しい場所を指すように変更します。 [参照パス] プロパティは、各コンピューターの各ユーザーごとに保持されます。 このため、参照パスを変更しても、プロジェクトの他のユーザーには影響しません。

ヒント

プロジェクト間参照ではこのような問題は発生しません。 したがって、可能な場合は、ファイル参照の代わりにプロジェクト間参照を使用してください。

壊れたプロジェクト参照を修復するために参照パスを修復するには

  1. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[プロパティ] をクリックします。

  2. プロジェクト デザイナーが表示されます。

  3. Visual Basic を使用している場合は、[参照設定] ページをクリックし、[参照パス] をクリックします。 [参照パス] ダイアログ ボックスの [フォルダー] フィールドに、参照したい項目を含むフォルダーのパスを入力し、[フォルダーの追加] をクリックします。

    または

    Visual C# を使用している場合は、Reference Paths ページを選択します。 [フォルダー] フィールドに、参照したい項目を含むフォルダーのパスを入力し、[フォルダーの追加] をクリックします。

参照するファイルが削除されている

参照するファイルが削除されていて、ドライブ上に既に存在しない可能性があります。

ドライブ上に既に存在しないファイルに対する壊れたプロジェクト参照を修復するには

参照するファイルの名前が変更されている

参照するファイルの名前が変更されている可能性があります。

名前が変更されているファイルに対する壊れた参照を修復するには

  • 参照を削除し、変更された名前への参照を追加します。

  • 参照がコンピューターの他の場所にある場合は、その場所から参照を読み込む必要があります。 詳細については、「方法: Visual Studio で参照を追加または削除する」を参照してください。

ネットワーク接続または認証が失敗した場合

ファイルにアクセスできない場合、多くの原因が考えられます。たとえば、ネットワーク接続に障害がある場合や、認証に失敗した場合です。 それぞれの原因に応じて固有の回復方法があります。たとえば、ローカル管理者に問い合わせることによって、必要なリソースにアクセスできる場合があります。 ただし、参照を削除してそれを使用していたコードを修復することは、常に有効な解決方法の候補です。 詳細については、「方法: Visual Studio で参照を追加または削除する」を参照してください。

COM コンポーネントがコンピューターにインストールされていない場合

あるユーザーが COM コンポーネントへの参照を追加し、別のユーザーが、その COM コンポーネントがインストールされていないコンピューターでコードを実行しようとすると、コードを実行したユーザーには、参照が壊れているというエラーが表示されます。 エラーが発生したコンピューターにコンポーネントをインストールすることで、このエラーを解決できます。 プロジェクトで COM コンポーネントへの参照を使用する方法の詳細については、「.NET Framework アプリケーションにおける COM 相互運用性 (Visual Basic)」を参照してください。

参照

処理手順

方法: Visual Studio で参照を追加または削除する

その他の技術情報

名前空間およびコンポーネントの参照

プロジェクト プロパティ (Visual Studio)