Как настроить собственный Nuget-сервер

Многие компании сталкиваются с необходимостью иметь собственный локальный Nuget-сервер для хостинга внтуренних разработок и фреймворков. Одним из наиболее простых вариантов является общая сетевая папка, где могут хранится все пакеты. Однако, это не всегда удобно и более правильным решением будет хостинг веб-приложения, которое и будет выполнять роль Nuget-сервера.

Чтобы создать Nuget-сервер необходимо выполнить несколько несложных шагов.

Создание нового веб-приложения и добавление Nuget-библиотек

Для начала создадим новое пустое ASP.NET приложение и установим в него пакет NuGet.Server.

Install-Package NuGet.Server

Заготовка для нашего Nuget-сервера готова.

Настройка параметров сервера

Перед использованием Nuget, необходимо задать несколько параметров в конфигурационном файле web.config. Все параметры определены в секции appSettings.

Один из обязательных параметров - это packagesPath, он указывает на папку, в которой будут хранится все пакеты для данного сервера.

<appSettings>
  <add key="apiKey" value="C:\Packages\" />
</appSettings>

Другие два важных параметра —

  • Флаг requireApiKey, который указывает на необходимость предоставления ключа для управления пакетами на сервере. Если этот параметр установлен в true, то сервер в обязательном порядке будет требовать предоставление ключа.
  • Ключ apiKey - собственно, сам ключ, который будет использоваться для взаимодействия с сервером. Если флаг requireApiKey будет установлен в true, а значение apiKey будет пустым, то публикация пакетов на сервер будет заблокирована.
<appSettings>
  <add key="requireApiKey" value="true" />
  <add key="apiKey" value="1ab183523cx7usf" />
</appSettings>

Запуск сервера

Наш Nuget-сервер готов и его можно запускать как обычное ASP.NET приложение.

При запуске приложения локально, можно обратиться по адресу http://localhost:[port]/nuget и получить текущую ленту пакетов.

Для публикации своих пакетов на сервер можно воспользоваться следующим синтаксисом утилиты nuget.exe:

nuget push {package file} -s http://localhost:[port]/ {apikey}

Публикация

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

Подключение к Visual Studio

Теперь, для того, чтобы использовать только что созданный сервер в Visual Stuido, необходимо в настройках VS указать адрес этого Nuget-сервера. Для этого следует открыть настройки в меню Visual Studio ToolsOptionsPackage ManagerPackage Sources и добавить там адрес только что созданного Nuget-сервера.

Ваш собственный Nuget-сервер готов к использованию.