Рейтинговые книги
Читем онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 310 311 312 313 314 315 316 317 318 ... 642

    <Copyright>Copyright 2020</Copyright>

    <Authors>Phil Japikse</Authors>

    <Company>Apress</Company>

    <Product>Pro C# 9.0</Product>

    <PackageId>CarLibrary</PackageId>

    <Description>This is an awesome library for cars.</Description>

    <AssemblyVersion>1.0.0.1</AssemblyVersion>

    <FileVersion>1.0.0.2</FileVersion>

    <Version>1.0.0.3</Version>

<b>    &lt;GeneratePackageOnBuild&gt;true&lt;/GeneratePackageOnBuild&gt;</b>

  &lt;/PropertyGroup&gt;

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

Пакеты также можно создавать в командной строке, причем интерфейс CLI предлагает больше параметров, чем среда Visual Studio. Например, чтобы построить пакет и поместить его в каталог по имени Publish, введите показанные далее команды (находясь в каталоге проекта CarLibrary). Первая команда компилирует сборку, а вторая создает пакет NuGet.

dotnet build -c Release

dotnet pack -o .Publish -c Debug

На заметку! Debug является стандартной конфигурацией и потому указывать -с Debug необязательно, но параметр присутствует в команде, чтобы намерение стало совершенно ясным.

Теперь в каталоге Publish находится файл CarLibrary.1.0.0.3.nupkg. Для просмотра его содержимого откройте файл с помощью любой утилиты zip-архивации (такой как 7-Zip). Вы увидите полное содержимое, которое включает сборку и дополнительные метаданные.

Ссылка на пакеты NuGet

Вас может интересовать, откуда поступают пакеты, добавленные в предшествующих примерах. Местоположением пакетов NuGet управляет файл XML по имени NuGet.Config. В среде Windows он находится в каталоге %appdata%NuGet. Это главный файл. Открыв его, вы увидите несколько источников пакетов:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;configuration&gt;

  &lt;packageSources&gt;

    &lt;add key=&quot;nuget.org&quot; value=&quot;https://api.nuget.org/v3/index.json&quot;

         protocolVersion=&quot;3&quot; /&gt;

    &lt;add key=&quot;Microsoft Visual Studio Offline Packages&quot;

         value=&quot;C:Program Files (x86)

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

               Microsoft SDKsNuGetPackages&quot; /&gt;

  &lt;/packageSources&gt;

&lt;/configuration&gt;

Здесь присутствуют два источника пакетов. Первый источник указывает на http://nuget.org/ — крупнейшее в мире хранилище пакетов NuGet. Второй источник находится на вашем локальном диске и применяется средой Visual Studio в качестве кеша пакетов.

Важно отметить, что файлы NuGet.Config по умолчанию являются аддитивными. Чтобы добавить дополнительные источники, не изменяя список источников для всей системы, вы можете создавать дополнительные файлы NuGet.Config. Каждый файл действителен для каталога, в котором он находится, а также для любых имеющихся подкаталогов. Добавьте в каталог решения новый файл по имени NuGet.Config со следующим содержимым:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;configuration&gt;

    &lt;packageSources&gt;

        &lt;add key=&quot;local-packages&quot; value=&quot;.CarLibraryPublish&quot; /&gt;

    &lt;/packageSources&gt;

&lt;/configuration&gt;

Кроме того, вы можете очищать список источников пакетов, добавляя в узел &lt;packageSources&gt; элемент &lt;clear /&gt;:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;configuration&gt;

  &lt;packageSources&gt;

<b>    &lt;clear /</b>&gt;

    &lt;add key=&quot;local-packages&quot; value=&quot;.CarLibraryPublish&quot; /&gt;

    &lt;add key=&quot;NuGet&quot; value=&quot;https://api.nuget.org/v3/index.json&quot; /&gt;

  &lt;/packageSources&gt;

&lt;/configuration&gt;

На заметку! В случае работы в Visual Studio вам придется перезапустить IDE-среду, чтобы обновленные настройки NuGet.Config вступили в силу.

Удалите ссылки на проекты из проектов CSharpCarClient и VisualBasicCarClient, после чего добавьте ссылки на пакет (находясь в каталоге решения):

dotnet add CSharpCarClient package CarLibrary

dotnet add VisualBasicCarClient package CarLibrary

Установив ссылки, скомпилируйте решение и просмотрите целевой каталог (binDebugnew5.0). Вы увидите, что в целевом каталоге находится файл CarLibrary.dll, а файл CarLibrary.nupkg отсутствует. Причина в том, что исполняющая среда .NET Core распаковывает файл CarLibrary.nupkg и добавляет содержащиеся в нем сборки как прямые ссылки.

1 ... 310 311 312 313 314 315 316 317 318 ... 642
На этой странице вы можете бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю бесплатно.
Похожие на Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю книги

Оставить комментарий