チュートリアル: Visual Studio Code を使用して .NET Standard ライブラリを作成するTutorial: Create a .NET Standard library using Visual Studio Code

このチュートリアルでは、1 つの文字列処理メソッドを含む簡単なユーティリティ ライブラリを作成します。In this tutorial, you create a simple utility library that contains a single string-handling method. それを拡張メソッドとして実装し、String クラスのメンバーと同じように呼び出すことができるようにします。You implement it as an extension method so that you can call it as if it were a member of the String class.

"クラス ライブラリ" は、アプリケーションから呼び出される型とメソッドを定義します。A class library defines types and methods that are called by an application. .NET Standard 2.0 をターゲットとするクラス ライブラリでは、お使いのライブラリを、そのバージョンの .NET Standard をサポートする任意の .NET 実装によって呼び出すことができます。A class library that targets .NET Standard 2.0 allows your library to be called by any .NET implementation that supports that version of .NET Standard. クラス ライブラリが完成したら、サードパーティ製のコンポーネントとして配布するか、1 つ以上のアプリケーションを含むバンドルされたコンポーネントとして配布することができます。When you finish your class library, you can distribute it as a third-party component or as a bundled component with one or more applications.

必須コンポーネントPrerequisites

  1. C# 拡張機能がインストールされている Visual Studio CodeVisual Studio Code with the C# extension installed. Visual Studio Code に拡張機能をインストールする方法については、VS Code Extension Marketplace を参照してください。For information about how to install extensions on Visual Studio Code, see VS Code Extension Marketplace.
  2. .Net Core 3.1 SDK 以降The .NET Core 3.1 SDK or later

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

まず、クラス ライブラリ プロジェクトを配置する空のソリューションを作成します。Start by creating a blank solution to put the class library project in. ソリューションは、1 つまたは複数のプロジェクトのコンテナーとして機能します。A solution serves as a container for one or more projects. さらに関連するプロジェクトを同じソリューションに追加します。You'll add additional, related projects to the same solution.

  1. Visual Studio Code を開始します。Start Visual Studio Code.

  2. メイン メニューから [ファイル] > [フォルダーを開く] (macOS では [開く...] ) の順に選択しますSelect File > Open Folder (Open... on macOS) from the main menu

  3. [フォルダーを開く] ダイアログで、ClassLibraryProjects フォルダーを作成し、 [フォルダーの選択] (macOS では [開く] ) をクリックします。In the Open Folder dialog, create a ClassLibraryProjects folder and click Select Folder (Open on macOS).

  4. メイン メニューで [表示] > [ターミナル] の順に選択して、Visual Studio Code でターミナルを開きます。Open the Terminal in Visual Studio Code by selecting View > Terminal from the main menu.

    コマンド プロンプトで ClassLibraryProjects フォルダーが表示され、ターミナルが開きます。The Terminal opens with the command prompt in the ClassLibraryProjects folder.

  5. ターミナルで、次のコマンドを入力します。In the Terminal, enter the following command:

    dotnet new sln
    

    ターミナルには次の例のような出力があります。The terminal output looks like the following example:

    The template "Solution File" was created successfully.
    

クラス ライブラリ プロジェクトを作成するCreate a class library project

"StringLibrary" という名前の新しい .NET Standard クラス ライブラリ プロジェクトをソリューションに追加します。Add a new .NET Standard class library project named "StringLibrary" to the solution.

  1. 次のコマンドをターミナルで実行して、ライブラリ プロジェクトを作成します。In the terminal, run the following command to create the library project:

    dotnet new classlib -o StringLibrary
    

    ターミナルには次の例のような出力があります。The terminal output looks like the following example:

    The template "Class library" was created successfully.
    Processing post-creation actions...
    Running 'dotnet restore' on StringLibrary\StringLibrary.csproj...
      Determining projects to restore...
      Restore completed in 328.13 ms for C:\Projects\ClassLibraryProjects\StringLibrary\StringLibrary.csproj.
    Restore succeeded.
    
  2. 次のコマンドを実行して、ライブラリ プロジェクトをソリューションに追加します。Run the following command to add the library project to the solution:

    dotnet sln add StringLibrary/StringLibrary.csproj
    

    ターミナルには次の例のような出力があります。The terminal output looks like the following example:

    Project `StringLibrary\StringLibrary.csproj` added to the solution.
    
  3. ライブラリが正しいバージョンの .NET Standard をターゲットにしていることを確認します。Check to make sure that the library targets the correct version of .NET Standard. エクスプローラーで、StringLibrary/StringLibrary .csproj を開きます。In Explorer, open StringLibrary/StringLibrary.csproj.

    TargetFramework 要素に、プロジェクトが .NET Standard 2.0 をターゲットとしていることが示されます。The TargetFramework element shows that the project targets .NET Standard 2.0.

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>netstandard2.0</TargetFramework>
      </PropertyGroup>
    
    </Project>
    
  4. Class1.cs を開き、このコードを次のものと置き換えます。Open Class1.cs and replace the code with the following code.

    using System;
    
    namespace UtilityLibraries
    {
        public static class StringLibrary
        {
            public static bool StartsWithUpper(this String str)
            {
                if (String.IsNullOrWhiteSpace(str))
                    return false;
    
                Char ch = str[0];
                return Char.IsUpper(ch);
            }
        }
    }
    

    クラス ライブラリ UtilityLibraries.StringLibrary には、StartsWithUpper という名前のメソッドが含まれています。The class library, UtilityLibraries.StringLibrary, contains a method named StartsWithUpper. このメソッドによって、現在の文字列のインスタンスが大文字で始まるかどうかを示す Boolean 値が返されます。This method returns a Boolean value that indicates whether the current string instance begins with an uppercase character. Unicode 規格では、大文字と小文字が区別されます。The Unicode standard distinguishes uppercase characters from lowercase characters. Char.IsUpper(Char) メソッドは文字が大文字の場合に true を返します。The Char.IsUpper(Char) method returns true if a character is uppercase.

  5. ファイルを保存します。Save the file.

  6. 次のコマンドを実行してソリューションをビルドし、エラーなしでプロジェクトがコンパイルされることを確認します。Run the following command to build the solution and verify that the project compiles without error.

    dotnet build
    

    ターミナルには次の例のような出力があります。The terminal output looks like the following example:

    Microsoft (R) Build Engine version 16.6.0 for .NET Core
    Copyright (C) Microsoft Corporation. All rights reserved.
      Determining projects to restore...
      All projects are up-to-date for restore.
      You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-preview
      StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\netstandard2.0\StringLibrary.dll
    Build succeeded.
        0 Warning(s)
        0 Error(s)
    Time Elapsed 00:00:02.78
    

ソリューションにコンソール アプリを追加するAdd a console app to the solution

このクラス ライブラリを使用するコンソール アプリケーションを追加します。Add a console application that uses the class library. アプリによって、ユーザーに文字列の入力が求められ、文字列が大文字で始まるかどうかが報告されます。The app will prompt the user to enter a string and report whether the string begins with an uppercase character.

  1. 次のコマンドをターミナルで実行して、コンソール アプリ プロジェクトを作成します。In the terminal, run the following command to create the console app project:

    dotnet new console -o ShowCase
    

    ターミナルには次の例のような出力があります。The terminal output looks like the following example:

    The template "Console Application" was created successfully.
    Processing post-creation actions...
    Running 'dotnet restore' on ShowCase\ShowCase.csproj...  
      Determining projects to restore...
      Restore completed in 210.78 ms for C:\Projects\ClassLibraryProjects\ShowCase\ShowCase.csproj.
    Restore succeeded.
    
  2. 次のコマンドを実行して、ソリューションにコンソール アプリ プロジェクトを追加します。Run the following command to add the console app project to the solution:

    dotnet sln add ShowCase/ShowCase.csproj
    

    ターミナルには次の例のような出力があります。The terminal output looks like the following example:

    Project `ShowCase\ShowCase.csproj` added to the solution.
    
  3. ShowCase/Program.cs を開き、すべてのコードを次のコードに置き換えます。Open ShowCase/Program.cs and replace all of the code with the following code.

    using System;
    using UtilityLibraries;
    
    class Program
    {
        static void Main(string[] args)
        {
            int row = 0;
    
            do
            {
                if (row == 0 || row >= 25)
                   ResetConsole();
    
                string input = Console.ReadLine();
                if (String.IsNullOrEmpty(input)) break;
                Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " +
                                  $"{(input.StartsWithUpper() ? "Yes" : "No")}\n");
                row += 3;
            } while (true);
            return;
    
            // Declare a ResetConsole local method
            void ResetConsole()
            {
                if (row > 0) {
                   Console.WriteLine("Press any key to continue...");
                   Console.ReadKey();
                }
                Console.Clear();
                Console.WriteLine("\nPress <Enter> only to exit; otherwise, enter a string and press <Enter>:\n");
                row = 3;
            }
        }
    }
    

    このコードでは、row 変数を使って、コンソール ウィンドウに書き込まれるデータの行数のカウントを維持します。The code uses the row variable to maintain a count of the number of rows of data written to the console window. これが 25 以上になると、コードによってコンソール ウィンドウがクリアされ、ユーザーにメッセージが表示されます。Whenever it's greater than or equal to 25, the code clears the console window and displays a message to the user.

    プログラムは、ユーザーに文字列の入力を要求し、The program prompts the user to enter a string. 文字列が大文字で始まるかどうかを示します。It indicates whether the string starts with an uppercase character. ユーザーが文字列を入力せずに Enter キーを押すと、アプリケーションが終了し、コンソール ウィンドウが閉じます。If the user presses the Enter key without entering a string, the application ends, and the console window closes.

  4. 変更内容を保存します。Save your changes.

プロジェクト参照を追加するAdd a project reference

最初は、新しいコンソール アプリ プロジェクトにクラス ライブラリへのアクセス権はありません。Initially, the new console app project doesn't have access to the class library. クラス ライブラリでメソッドを呼び出せるようにするには、クラス ライブラリ プロジェクトへのプロジェクト参照を作成します。To allow it to call methods in the class library, create a project reference to the class library project.

  1. 次のコマンドを実行します。Run the following command:

    dotnet add ShowCase/ShowCase.csproj reference StringLibrary/StringLibrary.csproj
    

    ターミナルには次の例のような出力があります。The terminal output looks like the following example:

    Reference `..\StringLibrary\StringLibrary.csproj` added to the project.
    

アプリを実行するRun the app

  1. ターミナルで次のコマンドを実行します。Run the following command in the terminal:

    dotnet run --project ShowCase/ShowCase.csproj
    
  2. 文字列を入力して Enter キーを押してプログラムを実行し、Enter キーを押して終了します。Try out the program by entering strings and pressing Enter, then press Enter to exit.

    ターミナルには次の例のような出力があります。The terminal output looks like the following example:

    Press <Enter> only to exit; otherwise, enter a string and press <Enter>:
    
    A string that starts with an uppercase letter
    Input: A string that starts with an uppercase letter
    Begins with uppercase? : Yes
    
    A string that starts with a lowercase letter
    Input: A string that starts with a lowercase letter
    Begins with uppercase? : Yes
    

その他の技術情報Additional resources

次の手順Next steps

このチュートリアルでは、ソリューションを作成し、ライブラリ プロジェクトを追加し、ライブラリを使用するコンソール アプリ プロジェクトを追加しました。In this tutorial, you created a solution, added a library project, and added a console app project that uses the library. 次のチュートリアルでは、ソリューションに単体テスト プロジェクトを追加します。In the next tutorial, you add a unit test project to the solution.