破損した参照のトラブルシューティング

適用対象: Visual Studio

アプリケーションで壊れた参照を使用しようとすると、例外エラーが生成されます。 エラーのメイン理由は、参照先のコンポーネントを見つけることができないことですが、参照が壊れていると見なされ、次のようなシナリオがいくつかあります。

  • プロジェクトの参照パスが正しくないか、不完全です。
  • 参照ファイルが削除されました。
  • 参照ファイルの名前が変更されました。
  • ネットワーク接続または認証に失敗しました。
  • 参照先 COM コンポーネントがコンピューターにインストールされていません。

次のいくつかのセクションでは、これらのシナリオの解決策を示します。

注:

アセンブリ内のファイルは、プロジェクト ファイル内の絶対パスで参照されます。 そのため、マルチ開発者環境で作業しているユーザーは、ローカル環境で参照されているアセンブリが見つからない可能性があります。 これらのエラーを回避するには、プロジェクト間参照を追加することをお勧めします。 詳細については、「 .NET のアセンブリ」を参照してください。

参照パスが正しくないか、不完全です

プロジェクトが異なるコンピューターで共有されている場合、コンポーネントが別のディレクトリに配置されている場合、一部の参照が見つからない可能性があります。 参照は、コンポーネント ファイルの名前 ( MyComponent など) の下に格納されます。 プロジェクトへの参照を追加すると、コンポーネント ファイルのフォルダーの場所 ( C:\MyComponents など) が ReferencePath プロジェクト プロパティに追加されます。

プロジェクトを開くと、Visual Studio は参照パス上のディレクトリを検索して、これらのコンポーネント ファイルを検索します。 D:\MyComponents などの別のディレクトリにコンポーネントを格納しているコンピューターでプロジェクトを開くと、参照が見つからず、タスク一覧にエラーが表示されます。

この問題を解決するには、次のいずれかの方法を使用します。

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

ヒント

プロジェクト間参照には、これらの壊れた参照の問題はありません。 このため、可能な場合は、ファイル参照の代わりに Project-to-project 参照を使用します。

壊れたプロジェクト参照を修正する

壊れたプロジェクト参照を修正するには、次の手順に従って参照パスを修正します。

  1. ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[プロパティ] を選択します。 [プロジェクト] Designerが表示されます。
  2. Visual Basic を使用している場合は、[ 参照 ] ページを選択し、[ 参照パス ] を選択します。
    1. [ 参照パス ] ダイアログ ボックスで、[フォルダー] フィールドに参照する項目を含む フォルダー のパスを入力します。
    2. [ フォルダーの追加] を選択します
  3. C# を使用している場合は、[ 参照パス ] ページを選択します。
    1. [ フォルダー] フィールドに、参照するアイテムを含むフォルダーのパスを入力します。
    2. [ フォルダーの追加] を選択します

参照ファイルが削除されました

ドライブに存在しなくなった削除されたファイルの壊れたプロジェクト参照を修正するには、次の 2 つのオプションがあります。

  • 参照を削除します。
  • 参照がコンピューター上の別の場所に存在する場合は、その場所から参照を読み取ります。

参照ファイルの名前が変更されました

名前が変更されたファイルの壊れた参照を修正するには、次の 2 つのオプションがあります。

  • 参照を削除し、名前を変更したファイルへの参照を追加します。
  • 参照がコンピューター上の別の場所に存在する場合は、その場所から参照を読み取ります。

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

アクセスできないファイルには、多くの原因が考えられます。 たとえば、ネットワーク接続の失敗や認証の失敗などです。 逆に、それぞれの原因に固有の回復手段がある可能性があります。 たとえば、必要なリソースにアクセスするには、ローカル管理者に問い合わせる必要があります。 ただし、参照を削除し、それを使用したコードを修正することは常にオプションです。

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

ユーザーが COM コンポーネントへの参照を追加し、2 番目のユーザーがこのコンポーネントがインストールされていないコンピューターでコードを実行しようとすると、2 番目のユーザーは壊れた参照エラーを受け取ります。 2 台目のコンピューターにコンポーネントをインストールすると、エラーが修正されます。 プロジェクトで COM コンポーネントへの参照を使用する方法の詳細については、「.NET Framework アプリケーションでの COM 相互運用性」を参照してください。

関連情報