Чтение онлайн

ЖАНРЫ

Язык программирования C#9 и платформа .NET5
Шрифт:

Открыв окно интерфейса CLI, введите следующие команды, чтобы создать новое решение, проекты для библиотек классов и консольного приложения, а также ссылки на проекты:

dotnet new sln -n Chapter17_ExtendableApp

dotnet new classlib -lang c# -n CommonSnappableTypes

– o .\CommonSnappableTypes -f net5.0

dotnet sln .\Chapter17_ExtendableApp.sln add .\CommonSnappableTypes

dotnet new classlib -lang c# -n CSharpSnapIn -o .\CSharpSnapIn -f net5.0

dotnet sln .\Chapter17_ExtendableApp.sln add .\CSharpSnapIn

dotnet add CSharpSnapin reference CommonSnappableTypes

dotnet new classlib -lang vb -n VBSnapIn -o .\VBSnapIn -f net5.0

dotnet sln .\Chapter17_ExtendableApp.sln add .\VBSnapIn

dotnet add VBSnapIn reference CommonSnappableTypes

dotnet new console -lang c# -n MyExtendableApp -o .\MyExtendableApp -f net5.0

dotnet sln .\Chapter17_ExtendableApp.sln add .\MyExtendableApp

dotnet add MyExtendableApp reference CommonSnappableTypes

Добавление

событий PostBuild в файлы проектов

При компиляции проекта (либо в Visual Studio, либо в командной строке) существуют события, к которым можно привязываться. Например, после каждой успешной компиляции нужно копировать две сборки оснасток в каталог проекта консольного приложения (в случае отладки посредством

dotnet run
) и в выходной каталог консольного приложения (при отладке в Visual Studio). Для этого будут использоваться несколько встроенных макросов.

Вставьте в файлы

CSharpSnapin.csproj
и
VBSnapIn.vbproj
приведенный ниже блок разметки, который копирует скомпилированную сборку в каталог проекта
MyExtendableApp
и в выходной каталог(
MyExtendableApp\bin\debug\net5.0
):

<Target Name="PostBuild" AfterTargets="PostBuildEvent">

<Exec Command="copy $(TargetPath) $(SolutionDir)MyExtendableApp\

$(OutDir)$(TargetFileNa
me)

/Y &#xD;&#xA;copy $(TargetPath) $(SolutionDir)MyExtendableApp\

$(TargetFileName) /Y" />

</Target>

Теперь после компиляции каждого проекта его сборка копируется также в целевой каталог приложения

MyExtendableApp
.

Создание решения и проектов с помощью Visual Studio

Вспомните, что по умолчанию среда Visual Studio назначает решению такое же имя, как у первого проекта, созданного в этом решении. Тем не менее, вы можете легко изменять имя решения.

Чтобы создать решение

ExtendableApp
, выберите в меню пункт File?New Project (Файл?Создать проект). В открывшемся диалоговом окне Add New Project (Добавление нового проекта) выберите элемент Class Library (Библиотека классов) и введите
CommonSnappableTypes
в поле Project name (Имя проекта). Прежде чем щелкать на кнопке Create (Создать), введите
ExtendableApp
в поле Solution name (Имя
решения), как показано на рис. 17.3.

Чтобы добавить к решению еще один проект, щелкните правой кнопкой мыши на имени решения(

ExtendableApp
) в окне Solution Explorer и выберите в контекстном меню пункт Add?New Project (Добавить? Новый проект) или выберите в меню пункт File?Add?New Project (Файл?Добавить?Новый проект). При добавлении дополнительного проекта к существующему решению содержимое диалогового окна Add New Project слегка отличается; параметры решения теперь отсутствуют, так что вы увидите только информацию о проекте (имя и местоположение). Назначьте проекту библиотеки классов имя
CSharpSnapIn
и щелкните на кнопке Create.

Далее добавьте в проект

CSharpSnapIn
ссылку на проект
CommonSnappableTypes
. В среде Visual Studio щелкните правой кнопкой мыши на имени проекта
CSharpSnapIn
и выберите в контекстном меню пункт Add?Project Reference (Добавить?Ссылка на проект). В открывшемся диалоговом окне Reference Manager (Диспетчер ссылок) выберите элемент Projects?Solution (Проекты?Решение) в левой части (если он еще не выбран) и отметьте флажок рядом с
CommonSnappableTypes
.

Повторите процесс для нового проекта библиотеки классов Visual Basic (VBSnapIn), которая ссылается на проект

CommonSnappableTypes
.

Наконец, добавьте к решению новый проект консольного приложения .NET Core по имени

MyExtendableApp
. Добавьте в него ссылку на проект
CommonSnappableTypes
и установите проект консольного приложения в качестве стартового для решения. Для этого щелкните правой кнопкой мыши на имени проекта
MyExtendableApp
в окне Solution Explorer и выберите в контекстном меню пункт Set as Startup Project (Установить как стартовый проект).

На заметку! Если вы щелкнете правой кнопкой мыши на имени решения

ExtendableApp
, а не на имени одного из проектов, то в контекстном меню отобразится пункт Set Startup Projects (Установить стартовые проекты). Помимо запуска по щелчку на кнопке Run (Запустить) только одного проекта можно настроить запуск множества проектов, что будет демонстрироваться позже в книге.

Установка зависимостей проектов при компиляции

Когда среде Visual Studio поступает команда запустить решение, стартовый проект и все проекты, на которые имеются ссылки, компилируются в случае обнаружения любых изменений; однако проекты, ссылки на которые отсутствуют, не компилируются. Положение дел можно изменить, устанавливая зависимости проектов. Для этого щелкните правой кнопкой мыши на имени решения в окне Solution Explorer, выберите в контекстном меню пункт Project Build Order (Порядок компиляции проектов), в открывшемся диалоговом окне перейдите на вкладку Dependencies (Зависимости) и в раскрывающемся списке Projects (Проекты) выберите

MyExtendableApp
.

Поделиться с друзьями: