次の方法で共有


プロジェクト内の参照を管理する

外部コンポーネントまたは接続済みサービスに対してコードを記述する前に、プロジェクトにその参照を含める必要があります。 参照は、基本的には、Visual Studio がコンポーネントまたはサービスを検索するために必要な情報を含むプロジェクト ファイル内のエントリです。

参照を追加する方法は、作業中のコードのプロジェクトの種類によって異なります。

  • ソリューション エクスプローラーの依存関係 ノード表示される場合は、右クリック コンテキスト メニューを使用して[プロジェクト参照の追加]選択できます。

    右クリック コンテキスト メニューの [プロジェクト参照の追加] オプションのスクリーンショット。

    プロジェクト ノードを右クリックし、[追加] > [プロジェクト参照] の順に選択することもできます。

  • ソリューション エクスプローラーの参照 ノード表示された場合は、右クリック コンテキスト メニューを使用して[参照の追加]選択できます。

    右クリック コンテキスト メニューの [参照の追加] オプションのスクリーンショット。

    または、プロジェクト ノード を右クリックし、[追加] を選択して [>参照] を追加します。

    詳細については、「方法:参照を追加または削除する」を参照してください。

次の種類のコンポーネントとサービスへの参照を追加できます。

  • .NET クラス ライブラリまたはアセンブリ

  • UWP アプリ

  • COM コンポーネント

  • 同じソリューション内のプロジェクトの他のアセンブリまたはクラス ライブラリ

  • 共有プロジェクト

  • XML Web サービス

UWP アプリの参照

ユニバーサル Windows プラットフォーム (UWP) は、Windows を実行するすべてのデバイスに共通のアプリ プラットフォームを提供します。 UWP アプリを作成する方法については、「チュートリアル: XAML と C#を使用して Visual Studio で初めてのユニバーサル Windows プラットフォーム アプリケーションを作成する」を参照してください。

プロジェクト参照

ユニバーサル Windows プラットフォーム (UWP) プロジェクトでは、ソリューション内の他の UWP プロジェクト、または Windows 8.1 プロジェクトまたはバイナリへの参照を作成できます。ただし、これらのプロジェクトでは、Windows 10 以降で非推奨となった API が使用されていない場合に使用できます。 詳細については、「Windows ランタイム 8 から UWPに移動する」を参照してください。

Windows 8.1 プロジェクトを Windows 10 以降に再ターゲットする場合は、「ポート、移行、およびアップグレードの Visual Studio プロジェクトを参照してください。

ヒント

Windows 10 および Windows 11 用の新しい UWP アプリを作成およびビルドする方法については、「UWP バージョンを選択する」を参照してください。

拡張機能 SDK のリファレンス

Visual Basic、C#、C++、JavaScript ユニバーサル Windows プラットフォーム (UWP) アプリは、Windows 8.1 を対象とする拡張機能 SDK を参照できます。これらの拡張機能 SDK では、Windows 10 以降で非推奨になった API が使用されていない限りです。 拡張機能 SDK ベンダー サイトを調べて、UWP アプリで参照できるかどうかを確認します。

アプリによって参照されている拡張機能 SDK がサポートされていないと判断した場合は、次の手順を実行する必要があります。

  1. エラーの原因となっているプロジェクトの名前を調べてください。 プロジェクトがターゲットとするプラットフォームは、プロジェクト名の横にかっこで囲まれています。 たとえば、MyProjectName (Windows 8.1) は、MyProjectName プロジェクトがプラットフォーム バージョン Windows 8.1 を対象としていることを意味します。

  2. サポートされていない Extension SDK を所有しているベンダーのサイトに移動し、プロジェクトが対象とするプラットフォームのバージョンと互換性のある依存関係を持つ拡張機能 SDK のバージョンをインストールします。

    手記

    拡張機能 SDK が他の拡張機能 SDK に依存しているかどうかを調べる 1 つの方法は、Reference Managerを調べることです。 Visual Studio を再起動し、新しい C# UWP アプリ プロジェクトを作成し、プロジェクトを右クリックして、[参照の追加] 選択します。 [Windows] タブに移動し、[拡張機能の ] サブタブに移動し、[拡張機能 SDK] を選択します。 参照マネージャーのの右側のウィンドウを見てください。 依存関係がある場合は、そこに一覧表示されます。

    重要

    プロジェクトが特に Windows 10 を対象としており、前の手順でインストールした Extension SDK が Microsoft Visual C++ ランタイム パッケージに依存している場合、Windows 10 と互換性のある Microsoft Visual C++ ランタイム パッケージのバージョンは v14.0 であり、Visual Studio とインストールされます。

  3. 前の手順でインストールした拡張機能 SDK が他の拡張機能 SDK に依存している場合は、依存関係を所有しているベンダーのサイトに移動し、プロジェクトが対象とするプラットフォームのバージョンと互換性のあるこれらの依存関係のバージョンをインストールします。

  4. Visual Studio を再起動し、アプリを開きます。

  5. エラーの原因となったプロジェクトの 参照 または 依存関係 ノードを右クリックし、[参照の追加] 選択します。

  6. [Windows] タブ、次に [拡張機能] サブタブを選択し、古い拡張 SDK に対応するチェック ボックスをオフにして、新しい拡張 SDK に対応するチェック ボックスをオンにします。 [OK]を選択します。

デザイン時に参照を追加する

プロジェクト内のアセンブリへの参照を作成すると、Visual Studio は次の場所でアセンブリを検索します。

  • 現在のプロジェクト ディレクトリ。 ([参照] タブを使用して、これらのアセンブリを見つけることができます)。

  • 同じソリューション内の他のプロジェクト ディレクトリ。 (これらのアセンブリは、[プロジェクト] タブにあります)。

手記

  • すべてのプロジェクトには、mscorlibへの暗黙の参照が含まれています。
  • 参照の一覧から System.Core が削除された場合でも、すべてのプロジェクトに System.Coreへの暗黙的な参照が含まれています。
  • Visual Basic プロジェクトには、Microsoft.VisualBasicへの暗黙的な参照が含まれています。

実行時の共有コンポーネントへの参照

実行時に、コンポーネントはプロジェクトの出力パスまたはグローバル アセンブリ キャッシュ (GAC) 内にある必要があります。 プロジェクトに、これらの場所のいずれかに存在しないオブジェクトへの参照が含まれている場合は、プロジェクトをビルドするときに、プロジェクトの出力パスへの参照をコピーする必要があります。 CopyLocal プロパティは、このコピーを作成する必要があるかどうかを示します。 値が true 場合、プロジェクトのビルド時に参照がプロジェクト ディレクトリにコピーされます。 値が false 場合、参照はコピーされません。

GAC に登録されているカスタム コンポーネントへの参照を含むアプリケーションを展開する場合、CopyLocal 設定に関係なく、コンポーネントはアプリケーションと共に展開されません。 以前のバージョンの Visual Studio では、アセンブリが確実に配置されるように、参照に CopyLocal プロパティを設定できます。 次に、アセンブリを \Bin フォルダーに手動で追加する必要があります。 このアクションにより、すべてのカスタム コードが調査対象になり、使い慣れていないカスタム コードを発行するリスクが軽減されます。

既定では、アセンブリまたはコンポーネントがグローバル アセンブリ キャッシュ内にある場合、またはフレームワーク コンポーネントである場合、CopyLocal プロパティは false に設定されます。 それ以外の場合、値は Trueに設定されます。 プロジェクト間参照は常に true に設定されます。

別のバージョンの .NET を対象とするプロジェクトまたはアセンブリを参照する

別のバージョンの .NET を対象とするプロジェクトまたはアセンブリを参照するアプリケーションを作成できます。 たとえば、.NET Framework 4.5 を対象とするアセンブリを参照する .NET Framework 4.6 を対象とするアプリケーションを作成できます。 以前のバージョンの .NET を対象とするプロジェクトを作成する場合、そのプロジェクトの参照を、新しいバージョンを対象とするプロジェクトまたはアセンブリに設定することはできません。

詳細については、「Framework のターゲット設定の概要」を参照してください。

プロジェクト間参照

プロジェクト間参照は、アセンブリを含むプロジェクトへの参照です。[参照マネージャー] ダイアログ ボックスの [プロジェクト] タブを使用して、プロジェクト参照を追加します。 Visual Studio では、プロジェクトへのパスが指定されたときにアセンブリを検索できます。

アセンブリを生成するプロジェクトがある場合は、プロジェクトを参照し、ファイル参照を使用しないでください。 プロジェクト間参照の利点は、ビルド システム内のプロジェクト間の依存関係を作成することです。 依存プロジェクトは、参照元プロジェクトが最後にビルドされてから変更された場合にビルドされます。 ファイル参照ではビルド依存関係が作成されないため、依存プロジェクトをビルドせずに参照元プロジェクトをビルドでき、参照が古くなる可能性があります。 (つまり、プロジェクトは以前にビルドされたバージョンのプロジェクトを参照できます)。これにより、bin ディレクトリに複数のバージョンの 1 つの DLL が必要になる可能性があります。これは不可能です。 この競合が発生すると、「警告: プロジェクト 'project' の依存関係 'file' は参照 'file' を上書きするため、実行ディレクトリにコピーできません」といったメッセージが表示されます。詳細については、「壊れた参照のトラブルシューティング」および「方法: プロジェクトの依存関係を作成および削除する」を参照してください。

手記

プロジェクト間参照の代わりにファイル参照が作成されるのは、あるプロジェクトの .NET Framework のターゲット バージョンがバージョン 4.5 で、もう一方のプロジェクトのターゲット バージョンがバージョン 2、3、3.5、または 4.0 の場合です。

共有プロジェクト参照

他のほとんどの種類のプロジェクトとは異なり、共有プロジェクト にはバイナリ出力がありません。 代わりに、コードは、それを参照する各プロジェクトにコンパイルされます。 共有プロジェクトを使用すると、さまざまなアプリケーション プロジェクトによって参照される一般的なコードを記述できます。 コードは、各参照プロジェクトの一部としてコンパイルされ、プラットフォーム固有の機能を共有コード ベースに組み込むのに役立つコンパイラ ディレクティブを含めることができます。 [参照マネージャー] ダイアログ ボックスの [共有プロジェクト] タブで、共有プロジェクトへの参照を追加します。

ファイル参照

ファイル参照は、Visual Studio プロジェクトのコンテキスト外のアセンブリへの直接参照です。 これらを作成するには、[参照マネージャー] ダイアログ ボックスの [参照 タブを使用します。 アセンブリまたはコンポーネントがあり、それを出力するプロジェクトがない場合は、ファイル参照を使用します。