壊れた参照のトラブルシューティング
適用対象: Visual Studio
アプリケーションが、壊れている参照を使用しようとすると例外エラーが生成されます。 エラーの主な理由は、参照先コンポーネントを見つけることができないことですが、参照が壊れていると見なされ、次のようなシナリオがいくつかあります。
- プロジェクトの参照パスが正しくないか、不完全です。
- 参照ファイルが削除されました。
- 参照ファイルの名前が変更されました。
- ネットワーク接続または認証に失敗しました。
- 参照先 COM コンポーネントがコンピューターにインストールされていません。
次のいくつかのセクションでは、これらのシナリオの解決策を示します。
Note
アセンブリ内のファイルは、プロジェクト ファイルの絶対パスで参照されます。 したがって、複数の開発者がいる環境で作業しているユーザーは、気付くとローカル環境内で参照先アセンブリがなくなっているという可能性があります。 これらのエラーを避けるには、プロジェクト間参照を追加することをお勧めします。 詳細については、「.NET のアセンブリ」を参照してください。
参照パスが正しくないか不完全です
プロジェクトが異なるコンピューターで共有されている場合、コンポーネントが別のディレクトリにある場合、一部の参照が見つからない可能性があります。 参照は、コンポーネント ファイルの名前 (MyComponent など) で格納されます。 プロジェクトへの参照を追加すると、コンポーネント ファイルのフォルダーの場所 ( C:\MyComponents など) が ReferencePath プロジェクト プロパティに追加されます。
プロジェクトを開くと、Visual Studio は参照パス上のディレクトリを検索して、これらのコンポーネント ファイルを検索します。 D:\MyComponents などの別のディレクトリにコンポーネントを格納しているコンピューターでプロジェクトを開くと、参照が見つからず、Task List にエラーが表示されます。
この問題を解決するには、次のいずれかの方法を使用します。
- 壊れた参照を削除し、 参照の追加 ダイアログ ボックスを使用して置き換えます。
- プロジェクトのプロパティ ページの Reference Path 項目を使用します。 リスト内のフォルダーが正しい場所を指すように変更します。 [参照パス] プロパティは、各コンピューターのユーザーごとに保持されます。 したがって、参照パスを変更しても、プロジェクトの他のユーザーには影響しません。
ヒント
プロジェクト間参照には、これらの壊れた参照の問題はありません。 このため、可能な場合は、ファイル参照の代わりにプロジェクト間参照を使用します。
壊れたプロジェクト参照を修正する
壊れたプロジェクト参照を修正するには、次の手順に従って参照パスを修正します。
- ソリューション エクスプローラーで、プロジェクト ノードを右クリックしてから [プロパティ] を選択します。 プロジェクト デザイナーが表示されます。
- Visual Basic を使用している場合は、 References ページを選択し、 参照パス を選択します。
- [ 参照パス ] ダイアログ ボックスで、[ Folder フィールドに参照するアイテムを含むフォルダーのパスを入力します。
- [フォルダー 追加を選択します。
- C# を使用している場合は、[参照パス] ページを選択します。
- Folder フィールドに、参照するアイテムを含むフォルダーのパスを入力します。
- [フォルダー 追加を選択します。
参照先ファイルが削除されました
ご利用のドライブ上に存在しなくなった削除済みファイルに対するプロジェクト参照の破損を修正するには、次の 2 つの方法があります。
- 参照を削除します。
- 参照がコンピューター上の別の場所にある場合は、その場所から読み取ります。
参照先ファイルの名前が変更されました
名前が変更されたファイルに対する参照の破損を修正するには、次の 2 つの方法があります。
- 参照を削除し、名前を変更したファイルへの参照を追加します。
- 参照がコンピューター上の別の場所にある場合は、その場所から読み取ります。
ネットワーク接続または認証に失敗した
ファイルにアクセスできない原因としては、多くのことが考えられます。 たとえば、ネットワーク接続の失敗や認証の失敗などです。 逆に、それぞれの原因には、一意の回復手段が用意されている場合があります。 たとえば、必要なリソースにアクセスするには、ローカル管理者に問い合わせる必要がある場合があります。 ただし、参照を削除して、それを使用していたコードを修正することは、常に選択肢の 1 つとなります。
参照先 COM コンポーネントがコンピューターにインストールされていない
ユーザーが COM コンポーネントへの参照を追加し、2 番目のユーザーがこのコンポーネントがインストールされていないコンピューターでコードを実行しようとすると、2 番目のユーザーは壊れた参照エラーを受け取ります。 別のコンピューター上にコンポーネントをインストールすると、エラーが修正されます。 プロジェクトで COM コンポーネントへの参照を使用する方法の詳細については、「.NET Framework アプリケーションにおける COM 相互運用性」を参照してください。