Как разместить собственный канал nuget v3?

В моей организации есть несколько каналов nuget v2 (приложение .net, использующее nuget.server) для наших внутренних пакетов и для повторного размещения сторонних пакетов (поскольку наши машины сборки не имеют доступа к Интернету, и мы проверяем, какие пакеты разработчики используют в нашем продукте и хотелось бы, чтобы сборки завершились неудачно, если у нас нет пакета).

Всякий раз, когда я добавляю какие-либо пакеты, для которых требуется клиент nuget 3.0+, на мои серверы nuget, сервер nuget дает сбой, поскольку он не может читать метаданные из этих пакетов. Как мне разместить свой собственный сервер nuget v3/обновить существующие серверы nuget, чтобы они были совместимы с v3?


person badazzhindu    schedule 09.11.2015    source источник


Ответы (3)


Недавно я написал промежуточное ПО aspnetcore для сервера nuget.

Конечно, реализация такая глупая, уродливая и т. д... ссылка

Вы можете настроить его в Startup.cs

public void ConfigureServices( IServiceCollection services )
{
    ...
    services.AddNugetServer(opt=>
    {
        opt.ApiKey = "This is a string used for adds or deletes your package(s)";
        opt.PackageDirectory = "/path/to/your/packages"; //default is current path + "/packages"
    });
    ...
}

public void Configure( IApplicationBuilder app, IHostingEnvironment env )
{
    ...
    app.UseNugetServer();
}

И посетите http(s)://ваш-сервер-адрес[:порт]/v3/index.json

Издательский:

dotnet nuget push -s http(s)://your-server-address[:port]/v3/package package.nupkg
person Reo Mai    schedule 26.12.2017

У меня была такая же проблема, и я провел некоторое исследование. Возможно, вы уже решили свою проблему, но здесь сам NuGet перечисляет несколько альтернатив для изучения; бесплатное и платное: Размещение собственных фидов NuGet

Короче, список такой

  • Командные службы Visual Studio
  • MyGet
  • ProGet Инедо
  • Художественная фабрика JFrog
  • NuGet-сервер
  • Нексус Сонатипа

Я только что протестировал ProGet, но он, похоже, не соответствует версии 3, хотя его было легко установить и он был бесплатным.

Я мог бы просто переключиться на собственный TeamCity, как только они получат возможность обрабатывать каналы v3.

В настоящее время я тестирую сервер NuGet, который можно загрузить в виде пакета через

Install-Package NuGet.Server

в Package-Manager в Visual Studio в новом пустом веб-приложении для .Net 4.5.x.

person Tryggen    schedule 04.05.2016

Я проверил некоторые продукты, и мне больше всего нравится Azure DevOps Services.

Службы Azure DevOps

✅ бесплатно (в комплекте 2 ГБ хранилища)
✅ символы поддержки
✅ сайт с поиском

BaGet В настоящее время стабильная версия недоступна (сентябрь 2019 г.)

✅ бесплатно
✅ символы поддержки
✅ сайт с поиском

Сервер NuGet

✅ бесплатно
❌ символы поддержки
❌ сайт с поиском

MyGet

❌ бесплатно
✅ символы поддержки
✅ сайт с поиском

ProGet от Inedo

❌ бесплатно
✅ символы поддержки
✅ сайт с поиском

Artifactory JFrog

❌ бесплатно
✅ символы поддержки
✅ сайт с поиском

Связь Sonatype

❌ бесплатно
❌ символы поддержки
✅ сайт с поиском

Сценарий переноса

$source = "http://oldnuget-server.mydomain.com/nuget"
$destination = "https://pkgs.dev.azure.com/MYCOMPANY/_packaging/MYCOMPANY/nuget/v3/index.json"

(& .\nuget.exe list -AllVersions -Source $source).Split([Environment]::NewLine) | % {
  $id = $_.Split(" ")[0].Trim()
  $version = $_.Split(" ")[1].Trim()

  $path = [IO.Path]::Combine("Packages", $id, $version, "${id}.${version}.nupkg")

  Write-Host "nuget.exe push -Source $destination ""$path"""
  & .\nuget.exe push -Source $destination $path -ApiKey XXXX-XXXXX
}
person live2    schedule 20.08.2019