次の方法で共有


Visual Basic を使用したプロジェクトとソリューションについて説明します

この入門記事では、Visual Studio で ソリューションプロジェクト を作成する意味について説明します。 ソリューションは、クラス ライブラリ プロジェクトや対応するテスト プロジェクトなど、1 つ以上の関連するコード プロジェクトを整理するために使用されるコンテナーです。 プロジェクトのプロパティと、プロジェクトに含めることができるファイルの一部について説明します。 また、あるプロジェクトから別のプロジェクトへの参照も作成します。

ヒント

Visual Studio をまだインストールしていない場合は、Visual Studio のダウンロード ページに移動して無料でインストールします。

プロジェクトの概念を理解するための教育演習として、ソリューションとプロジェクトをゼロから構築します。 Visual Studio の一般的な使用では、新しいプロジェクトを作成するときに Visual Studio で提供されるさまざまなプロジェクト テンプレート の一部を使用する可能性があります。

ソリューションとプロジェクトは、Visual Studio でアプリを開発する必要はありません。 コードを含むフォルダーを開き、コーディング、ビルド、デバッグを開始することもできます。 たとえば、 GitHub リポジトリを複製した場合、Visual Studio のプロジェクトとソリューションが含まれていない可能性があります。 詳細については、「 プロジェクトやソリューションを使用せずに Visual Studio でコードを開発する」を参照してください。

ソリューションとプロジェクト

その名前にもかかわらず、解決策は "回答" ではありません。 ソリューションは、1 つ以上の関連プロジェクトを整理するために Visual Studio によって使用される単なるコンテナーです。 Visual Studio でソリューションを開くと、ソリューションに含まれるすべてのプロジェクトが自動的に読み込まれます。

ソリューションを作成する

空のソリューションを作成して、探索を開始します。 Visual Studio を理解した後、空のソリューションを頻繁に作成することはおそらくありません。 新しいプロジェクトを作成すると、ソリューションがまだ開いていない場合は、プロジェクトを収容するソリューションが Visual Studio によって自動的に作成されます。

  1. Visual Studio を開きます。

  2. スタート ウィンドウで、[新しいプロジェクト作成] を選択します。

  3. [ 新しいプロジェクトの作成 ] ページで、検索ボックスに 「空のソリューション 」と入力し、 空のソリューション テンプレートを選択して、[ 次へ] を選択します。

    検索ボックスに [空のソリューション] が表示され、[空のソリューション プロジェクト テンプレート] が選択されている [新しいプロジェクトの作成] ウィンドウを示すスクリーンショット。

  4. ソリューションに QuickSolution という名前を付け、[ 作成] を選択します。

    ソリューションがソリューション エクスプローラー の Visual Studio ウィンドウの右側に表示されます。 ソリューション エクスプローラーを頻繁に使用して、プロジェクトの内容を参照します。

  1. Visual Studio を開きます。

  2. スタート ウィンドウで、[新しいプロジェクト作成] を選択します。

  3. [ 新しいプロジェクトの作成 ] ページで、検索ボックスに 「空のソリューション 」と入力し、 空のソリューション テンプレートを選択して、[ 次へ] を選択します。

    検索ボックスに [空のソリューション] が表示され、[空のソリューション プロジェクト テンプレート] が選択されている [新しいプロジェクトの作成] ウィンドウを示すスクリーンショット。

  4. ソリューションに QuickSolution という名前を付け、[ 作成] を選択します。

    ソリューションがソリューション エクスプローラー の Visual Studio ウィンドウの右側に表示されます。 ソリューション エクスプローラーを頻繁に使用して、プロジェクトの内容を参照します。

プロジェクトを追加する

次に、最初のプロジェクトをソリューションに追加しましょう。 空のプロジェクトから始めて、必要な項目をプロジェクトに追加します。

  1. ソリューション エクスプローラーソリューション 'QuickSolution' の右クリックまたはコンテキスト メニューから、[追加>新しいプロジェクト] を選択します。

    [新しいプロジェクトの追加] というダイアログ ボックスが開きます。

  2. 上部の検索ボックスにのテキストを入力し、[言語] で [Visual Basic] を選択します。

  3. 空の プロジェクト (.NET Framework) テンプレートを選択し、[ 次へ] を選択します。

  4. プロジェクトに QuickDate という名前を付け、[ 作成] を選択します。

    ソリューション エクスプローラーのソリューションの下に QuickDate という名前のプロジェクトが表示されます。 現在、 App.configという名前の 1 つのファイルが含まれています。

    空のプロジェクト (.NET Framework) テンプレートが表示されない場合は、.NET デスクトップ開発 Visual Studio ワークロードをインストールする必要があります。 Visual Studio では、ワークロードベースのインストールを使用して、実行する開発の種類に必要なコンポーネントのみをインストールします。 新しいプロジェクトを作成するときに新しいワークロードをインストールする簡単な方法は、探しているものが見つからないというテキストの下にある [その他のツールと機能のインストール] リンクを選択することです。 Visual Studio インストーラーが起動したら、 .NET デスクトップ開発 ワークロードを選択し、[ 変更 ] ボタンをクリックします。

    [その他のツールと機能のインストール] リンクが強調表示されている [新しいプロジェクトの作成] ウィンドウを示すスクリーンショット。

  1. ソリューション エクスプローラーソリューション 'QuickSolution' の右クリックまたはコンテキスト メニューから、[追加>新しいプロジェクト] を選択します。

    [新しいプロジェクトの追加] というダイアログ ボックスが開きます。

  2. 上部の検索ボックスにのテキストを入力し、[すべての言語] ドロップダウン リストで [Visual Basic] を選択します。

  3. 空の プロジェクト (.NET Framework) テンプレートを選択し、[ 次へ] を選択します。

  4. プロジェクトに QuickDate という名前を付け、[ 作成] を選択します。

    ソリューション エクスプローラーのソリューションの下に QuickDate という名前のプロジェクトが表示されます。 現在、 App.configという名前の 1 つのファイルが含まれています。

    空のプロジェクト (.NET Framework) テンプレートが表示されない場合は、.NET デスクトップ開発 Visual Studio ワークロードをインストールする必要があります。 Visual Studio では、ワークロードベースのインストールを使用して、実行する開発の種類に必要なコンポーネントのみをインストールします。 新しいプロジェクトを作成するときに新しいワークロードをインストールする簡単な方法は、探しているものが見つからないというテキストの下にある [その他のツールと機能のインストール] リンクを選択することです。 Visual Studio インストーラーが起動したら、 .NET デスクトップ開発 ワークロードを選択し、[ 変更 ] ボタンをクリックします。

    [その他のツールと機能のインストール] リンクが強調表示されている [新しいプロジェクトの作成] ウィンドウを示すスクリーンショット。

プロジェクトに項目を追加する

空のプロジェクトがあります。 コード ファイルを追加しましょう。

  1. ソリューション エクスプローラーQuickDate プロジェクトの右クリックまたはコンテキスト メニューから、[追加>新しい項目] を選択します。

    新しい項目の追加 ダイアログ ボックスが開きます。

  2. [ 共通項目] を展開し、[ コード] を選択します。 中央のウィンドウで、 クラス 項目テンプレートを選択します。 クラスに Calendar という名前を付け、[ 追加 ] ボタンを選択します。

    Calendar.vbという名前 ファイルがプロジェクトに追加されます。 最後の .vb は、Visual Basic コード ファイルに与えられるファイル拡張子です。 ソリューション エクスプローラーのビジュアル プロジェクト階層にファイルが表示され、その内容がエディターで開きます。

  3. Calendar.vb ファイルの内容を次のコードに置き換えます。

    Class Calendar
        Public Shared Function GetCurrentDate() As Date
            Return DateTime.Now.Date
        End Function
    End Class
    

    Calendar クラスには、現在の日付を返す 1 つの関数 (GetCurrentDate) が含まれています。

  4. ソリューション エクスプローラーで [マイ プロジェクト] をダブルクリックして、プロジェクトのプロパティを開きます。 [ アプリケーション ] タブで、[ アプリケーションの種類][クラス ライブラリ] に変更します。 この手順は、プロジェクトを正常にビルドするために必要です。

  5. ソリューション エクスプローラーQuickDate を右クリックし、[ビルド] を選択して、プロジェクトをビルドします。 [出力] ウィンドウに正常なビルド メッセージが表示されます。

    Visual Studio の [出力] ウィンドウのスクリーンショット。

2 つ目のプロジェクトを追加する

ソリューションには複数のプロジェクトを含めるのが一般的であり、多くの場合、これらのプロジェクトは相互に参照されます。 ソリューション内の一部のプロジェクトは、クラス ライブラリ、一部の実行可能アプリケーション、および単体テスト プロジェクトまたは Web サイトである場合があります。

ソリューションに単体テスト プロジェクトを追加しましょう。 今回はプロジェクト テンプレートから開始するので、プロジェクトにコード ファイルを追加する必要はありません。

  1. ソリューション エクスプローラーソリューション 'QuickSolution' の右クリックまたはコンテキスト メニューから、[追加>新しいプロジェクト] を選択します。
  1. [新しいプロジェクトの追加] ダイアログ ボックスで、上部にある検索ボックスにテキスト単体テストを入力し、[言語] で [Visual Basic] を選択します。

  2. 単体テスト プロジェクト (.NET Framework) プロジェクト テンプレートを選択し、[次へ] を選択します。

  3. プロジェクトに QuickTest という名前を付け、[ 作成] を選択します。

    ソリューション エクスプローラーに 2 つ目のプロジェクトが追加され、UnitTest1.vbという名前のファイルがエディターで開きます。

  1. [新しいプロジェクトの追加] ダイアログ ボックスで、上部にある検索ボックスにテキスト単体テストを入力し、[すべての言語] ドロップダウン リストで [Visual Basic] を選択します。

  2. 単体テスト プロジェクト (.NET Framework) プロジェクト テンプレートを選択し、[次へ] を選択します。

  3. プロジェクトに QuickTest という名前を付け、[ 作成] を選択します。

    ソリューション エクスプローラーに 2 つ目のプロジェクトが追加され、UnitTest1.vbという名前のファイルがエディターで開きます。

プロジェクト参照を追加する

新しい単体テスト プロジェクトを使用して QuickDate プロジェクトでメソッドをテストするため、そのプロジェクトへの参照を追加する必要があります。 この参照により、2 つのプロジェクト間に ビルド依存関係 が作成されます。つまり、ソリューションをビルドすると、 QuickDateQuickTest より前にビルドされます。

  1. QuickTest プロジェクトの [参照] ノードを選択し、右クリックまたはコンテキスト メニューから [参照の追加] を選択します。

    QuickTest プロジェクトの [参照] ノードのコンテキスト メニューを示すスクリーンショット。[参照の追加] オプションが選択されています。

    [ 参照マネージャー ] ダイアログ ボックスが開きます。

  2. 左側のウィンドウで、[ プロジェクト ] を展開し、[ソリューション] を選択 します。 中央のウィンドウで、 QuickDate の横にあるチェック ボックスをオンにし、[ OK] ボタンを選択します。

    QuickDate プロジェクトへの参照が追加されます。

  1. QuickTest プロジェクトの [参照] ノードを選択し、右クリックまたはコンテキスト メニューから [参照の追加] を選択します。

    QuickTest プロジェクトの [参照] ノードのコンテキスト メニューを示すスクリーンショット。[参照の追加] オプションが選択されています。

    [ 参照マネージャー ] ダイアログ ボックスが開きます。

  2. 左側のウィンドウで、[ プロジェクト ] を展開し、[ソリューション] を選択 します。 中央のウィンドウで、 QuickDate の横にあるチェック ボックスをオンにし、[ OK] ボタンを選択します。

    QuickDate プロジェクトへの参照が追加されます。

テスト コードを追加する

  1. 次に、Visual Basic コード ファイルにテスト コードを追加します。 UnitTest1.vbの内容を次のコードに置き換えます。

    <TestClass()> Public Class UnitTest1
    
        <TestMethod()> Public Sub TestGetCurrentDate()
            Assert.AreEqual(Date.Now.Date, QuickDate.Calendar.GetCurrentDate())
        End Sub
    
    End Class
    

    一部のプログラムコードの下に赤い波線が表示されます。 このエラーを修正するには、テスト プロジェクトを QuickDate プロジェクトのフレンド アセンブリにします。

  2. QuickDate プロジェクトに戻り、Calendar.vb ファイルがまだ開いていない場合は開き、次の Imports ステートメントInternalsVisibleToAttribute 属性を追加して、テスト プロジェクトのエラーを解決します。

    Imports System.Runtime.CompilerServices
    
    <Assembly: InternalsVisibleTo("QuickTest")>
    

    コード ファイルは次のようになります。

    Imports ステートメントと Assembly 属性行が追加された後の、Visual Basic コード エディター ウィンドウのCalendar.vbのコードを示すスクリーンショット。

  1. 次に、Visual Basic コード ファイルにテスト コードを追加します。 UnitTest1.vbの内容を次のコードに置き換えます。

    <TestClass()> Public Class UnitTest1
    
        <TestMethod()> Public Sub TestGetCurrentDate()
            Assert.AreEqual(Date.Now.Date, QuickDate.Calendar.GetCurrentDate())
        End Sub
    
    End Class
    

    一部のコードの下に赤い波線が表示されます。 このエラーを修正するには、テスト プロジェクトを QuickDate プロジェクトのフレンド アセンブリにします。

  2. QuickDate プロジェクトに戻り、Calendar.vb ファイルがまだ開いていない場合は開き、次の Imports ステートメントInternalsVisibleToAttribute 属性を追加して、テスト プロジェクトのエラーを解決します。

    Imports System.Runtime.CompilerServices
    
    <Assembly: InternalsVisibleTo("QuickTest")>
    

    コード ファイルは次のようになります。

    Imports ステートメントと Assembly 属性行が追加された後の Visual Basic コード エディター ウィンドウのCalendar.vbのコードを示すスクリーンショット。

プロジェクトのプロパティ

属性を含むInternalsVisibleToAttribute ファイル内の行は、QuickTest プロジェクトのアセンブリ名 (ファイル名) を参照します。 アセンブリ名は、必ずしもプロジェクト名と同じであるとは限りません。 プロジェクトのアセンブリ名を検索するには、プロジェクトのプロパティを開きます。

  1. ソリューション エクスプローラーでQuickTest プロジェクトを選択します。 右クリックまたはコンテキスト メニューから [プロパティ] を選択するか、Alt キー+Enter キーを押します。 (ソリューション エクスプローラーで [マイ プロジェクト] をダブルクリックすることもできます)。

    プロジェクトの プロパティ ページ が [ アプリケーション ] タブで開きます。プロパティ ページには、プロジェクトのさまざまな設定が含まれています。 QuickTest プロジェクトのアセンブリ名が実際には "QuickTest" であることに注意してください。 アセンブリ名を変更する場合は、ここで行います。 その後、テスト プロジェクトをビルドすると、結果のバイナリ ファイルの名前が QuickTest.dll から選択したものに変わります。

    QuickTest プロジェクトのプロパティ ページの [アプリケーション] タブを示すスクリーンショット。[アセンブリ名] フィールドが強調表示され、値が 'QuickTest' です。

  2. プロジェクトのプロパティ ページの他のタブ ( [コンパイル][設定] など) を確認します。 これらのタブは、プロジェクトの種類によって異なります。

属性を含むInternalsVisibleToAttribute ファイル内の行は、QuickTest プロジェクトのアセンブリ名 (ファイル名) を参照します。 アセンブリ名は、必ずしもプロジェクト名と同じであるとは限りません。 プロジェクトのアセンブリ名を検索するには、プロジェクトのプロパティを開きます。

  1. ソリューション エクスプローラーでQuickTest プロジェクトを選択します。 右クリックまたはコンテキスト メニューから [プロパティ] を選択するか、Alt キー+Enter キーを押します。 (ソリューション エクスプローラーで [マイ プロジェクト] をダブルクリックすることもできます)。

    プロジェクトの プロパティ ページ が [ アプリケーション ] タブで開きます。プロパティ ページには、プロジェクトのさまざまな設定が含まれています。 QuickTest プロジェクトのアセンブリ名が実際には "QuickTest" であることに注意してください。 アセンブリ名を変更する場合は、ここで行います。 その後、テスト プロジェクトをビルドすると、結果のバイナリ ファイルの名前が QuickTest.dll から選択したものに変わります。

    QuickTest プロジェクトのプロパティ ページの [アプリケーション] タブを示すスクリーンショット。[アセンブリ名] フィールドが強調表示され、値が 'QuickTest' です。

  2. プロジェクトのプロパティ ページの他のタブ ( [コンパイル][設定] など) を確認します。 これらのタブは、プロジェクトの種類によって異なります。

(省略可能)テストを実行する

単体テストが動作していることを確認する場合は、メニュー バーから [テスト>実行>すべてのテスト ] を選択します。 テスト エクスプローラーというウィンドウが開き、TestGetCurrentDate テストに合格することがわかります。

TestGetCurrentDate テストに合格したことを示す Visual Studio のテスト エクスプローラーのスクリーンショット。

ヒント

テスト エクスプローラーが自動的に開かない場合は、メニュー バーから [Test>Windows>Test Explorer] を選択して開きます。

単体テストが動作していることを確認する場合は、メニュー バーから [ テスト>すべてのテストを実行 する] を選択します。 テスト エクスプローラーというウィンドウが開き、TestGetCurrentDate テストに合格することがわかります。

TestGetCurrentDate テストに合格したことを示す Visual Studio のテスト エクスプローラーのスクリーンショット。

ヒント

テスト エクスプローラーが自動的に開かない場合は、メニュー バーから [Test>Windows>Test Explorer] を選択して開きます。

次のステップ

Visual Studio をさらに詳しく調べる場合は、 Visual Basic のチュートリアルのいずれかに従ってアプリを作成することを検討してください。

こちらも参照ください