Полное руководство по языку программирования С# 14 и платформе .NET 10 / Классы, структуры и пространства имен

Создание библиотеки классов с помощью .NET CLI

Начальный ⏱ 3 мин чтения 👁 2 🕓 обновлено 11.08.2026

В прошлой теме рассматривалось создание библиотеки классов в Visual Studio и ее подключение в другой проект решения. Рассмотрим, как сделать то же самое, только без Visual Studio, используя .NET CLI.

Прежде всего для создания проекта библиотеки классов в .NET CLI команде dotnet new надо передать шаблон classlib

dotnet new classlib

Например, пусть у нас проект библиотеки классов будет располагаться в папке C:\dotnet\console\mylib. Создадим проект:

C:\Users\eugen>cd C:\dotnet\console\mylib

C:\dotnet\console\mylib>dotnet new classlib
Шаблон "Библиотека классов" успешно создан.

Идет обработка действий после создания...
Восстановление C:\dotnet\console\mylib\mylib.csproj:
  Определение проектов для восстановления...
  Восстановлен C:\dotnet\console\mylib\mylib.csproj (за 79 ms).
Восстановление выполнено.

C:\dotnet\console\mylib>

После выполнения этой команды будет создан проект с файлом кода Class1.cs:

Это тот же проект, что создается в Visual Studio. Например, переименуем файл Class1.cs в Person.cs, а класс Class1 в Person. Определим в классе Person простейший код:


namespace MyLib
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            this.name = name;
        }
        public void Print() => Console.WriteLine($"Name: {name}");
    }
}

Для построения библиотеки классов выполним команду

dotnet build

И после построения в проекте в папке \bin\Debug\net7.0\ можно будет найти файл mylib.dll.

Теперь подключим эту библиотеку в какой-нибудь проект. Для теста создадим новый консольный проект в папке C:\dotnet\console\helloapp (то есть в соседней папке по отношению к проекту mylib):

dotnet new console

Для добавления ссылки одного проекта в другой применяется команда dotnet add reference, которая имеет следующий общий формат:


dotnet add путь_к_файлу_csproj_главного_проекта reference путь_к_файлу_csproj_подключаемого_проекта

То есть в данном случае, если я нахожусь в папке проекта helloapp, то подключение библиотеки классов будет выглядеть следующим образом:

dotnet add helloapp.csproj reference ..\mylib\mylib.csproj

После успешного подключения библиотеки в главном проекте изменим файл Program.cs, чтобы он использовал класс Person из библиотеки классов:


using MyLib;    // подключение пространства имен из библиотеки классов

Person tom = new("Tom");
tom.Print();    // Name: Tom

Удаление ссылки на проект

Если надо удалить ссылку, то аналогичным образом применяется команда


dotnet remove путь_к_файлу_csproj_главного_проекта reference путь_к_файлу_csproj_подключаемого_проекта

Создание решения

Для создания решения применяется команда dotnet new sln, которая по умолчанию создает файл решения в текущей папке. Так, перейдем в терминале в папку консольного проекта и выполним команду

dotnet new sln

После этого в текущей папке будет создан файл с расширением .sln, который по умолчанию называется по имени текущей папки.

Добавим ранее созданные проекты в решение. Для этого применяется команда dotnet sln add, которая имеет следующий обобщенный формат:

dotnet sln [путь_к_файлу_решения.sln] add путь_к_файлу_csproj_добавляемого_проекта

Если файл решения расположен в текущей папке, то путь к файлу решения можно не указывать. Так, если мы по прежнему находимся в терминале в папке консольного проекта helloapp, выполним последовательно следующие команды

dotnet sln add helloapp.csproj
dotnet sln add ..\mylib\mylib.csproj

Если потом потребуется, наоборот, удалить проект из решения, то применяется команда

dotnet sln [путь_к_файлу_решения.sln] remove путь_к_файлу_csproj_удаляемого_проекта

Проверь себя

📋 Тест по теме «Создание библиотеки классов с помощью .NET CLI» Тест по теме

Практические задания

Лёгкое Ручная проверка Заполните пропуск в коде (1)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

namespace _____
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            this.name = name;
        }
        public void Print() => Console.WriteLine($"Name: {name}");
    }
}
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (2)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

dotnet _____ путь_к_файлу_csproj_главного_проекта reference путь_к_файлу_csproj_подключаемого_проекта
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (3)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

using MyLib;    // подключение пространства имен из библиотеки классов

Person _____ = new("Tom");
tom.Print();    // Name: Tom
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (4)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

dotnet remove путь_к_файлу_csproj_главного_проекта _____ путь_к_файлу_csproj_подключаемого_проекта
Войдите, чтобы отправить решение
Лёгкое Ручная проверка Заполните пропуск в коде (5)
+10 XP

В приведённом ниже фрагменте кода из этого урока пропущено одно слово. Определите его и впишите в поле ответа (без кавычек и пробелов).

dotnet sln [путь_к_файлу_решения.sln] add путь_к_файлу_____добавляемого_проекта
Войдите, чтобы отправить решение
Среднее Ручная проверка Восстановите код по памяти (1)
+20 XP

В этом фрагменте кода урока пропущены два ключевых элемента. Впишите оба пропущенных значения через запятую в порядке появления (например: x, 5).

namespace MyLib
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            _____.name = name;
        }
        public void Print() => Console.WriteLine($"_____: {name}");
    }
}
Войдите, чтобы отправить решение
Среднее Ручная проверка Восстановите код по памяти (2)
+20 XP

В этом фрагменте кода урока пропущены два ключевых элемента. Впишите оба пропущенных значения через запятую в порядке появления (например: x, 5).

_____ add путь_к_файлу_____главного_проекта reference путь_к_файлу_csproj_подключаемого_проекта
Войдите, чтобы отправить решение
Среднее Ручная проверка Расставьте строки кода в правильном порядке
+20 XP

Строки кода из примера этого урока перемешаны. Впишите их в правильном порядке, каждую строку — с новой строки.

using MyLib;    // подключение пространства имен из библиотеки классов
tom.Print();    // Name: Tom
Person tom = new("Tom");
Войдите, чтобы отправить решение
Сложное Ручная проверка Объясните и модифицируйте пример из урока «Создание библиотеки классов с помощью .NET CLI»
+30 XP

Опишите своими словами, что делает приведённый пример кода из урока «Создание библиотеки классов с помощью .NET CLI», и предложите одно осмысленное изменение (например, другое входное значение или дополнительное условие). Приведите итоговый код.

namespace MyLib
{
    public class Person
    {
        string name;
        public Person(string name) 
        {
            this.name = name;
        }
        public void Print() => Console.WriteLine($"Name: {name}");
    }
}
Войдите, чтобы отправить решение
Сложное Ручная проверка Найдите потенциальную проблему в коде урока «Создание библиотеки классов с помощью .NET CLI»
+30 XP

Изучите приведённый фрагмент кода и опишите, при каких входных данных или условиях он может сработать не так, как ожидается (граничный случай, отсутствие проверки и т.п.). Предложите исправленный вариант.

dotnet add путь_к_файлу_csproj_главного_проекта reference путь_к_файлу_csproj_подключаемого_проекта
Войдите, чтобы отправить решение
Мини-проект Ручная проверка Мини-проект по теме «Создание библиотеки классов с помощью .NET CLI»
+50 XP

Соберите небольшую программу, которая последовательно демонстрирует ключевые идеи урока. Программа должна быть рабочей и содержать минимум два самостоятельно написанных фрагмента, а не просто копию примера из урока.

Войдите, чтобы отправить решение
Домашнее задание Ручная проверка Домашнее задание по теме «Создание библиотеки классов с помощью .NET CLI»
+25 XP

Напишите собственную небольшую программу, применяющую материал темы «Создание библиотеки классов с помощью .NET CLI». Используйте не менее одной конструкции, показанной в примерах урока. Прикрепите код решения и краткое описание того, что он делает.

Войдите, чтобы отправить решение

Обсуждение (0)

Войдите, чтобы оставить комментарий.