我的组织为我们内部开发的软件包提供了几个nuget v2供稿(.net应用程序消耗nuget.server)并重新托管第三方软件包(因为我们的构建机器没有Internet访问权限,我们会审核开发人员在哪些软件包中使用我们的产品,如果我们没有包装,我希望这些产品失败。
每当我将需要nuget client 3.0+的任何软件包添加到我的nuget服务器时,nuget服务器崩溃,因为它无法从这些软件包中读取元数据。如何托管我自己的nuget v3服务器/升级我现有的nuget服务器以兼容v3?
答案 0 :(得分:2)
我最近写了一个nuget服务器aspnetcore中间件。
在cource中,实现是如此愚蠢,丑陋等等...... link
您可以在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):// your-server-address [:port] /v3/index.json
出版:
dotnet nuget push -s http(s)://your-server-address[:port]/v3/package package.nupkg
答案 1 :(得分:1)
我遇到了同样的问题,并做了一些研究。你可能已经解决了你的问题,但是在这里NuGet自己列出了一些可供选择的方法;免费和付费: Hosting Your Own NuGet Feeds
简而言之,列表是
我刚刚测试了ProGet,但即使它很容易安装和免费,它似乎也没有与v3同步。
我可能只要他们获得处理v3供稿的功能,就可以切换到TeamCity本机版本。
目前我正在测试可以通过
下载的NuGet ServerInstall-Package NuGet.Server
在Visual Studio中的Package-Manager中,用于.Net 4.5.x的新的空Web应用程序。
答案 2 :(得分:1)
我检查了一些产品,我最喜欢的是 Azure DevOps Services 。
✅免费(包括2GB存储空间)
✅支持符号
with带有搜索的网站
BaGet当前没有稳定的发行版本(2019年9月)
✅免费
✅支持符号
with带有搜索的网站
✅免费
❌支持符号
with带有搜索的网站
❌免费
✅支持符号
with带有搜索的网站
❌免费
✅支持符号
with带有搜索的网站
❌免费
✅支持符号
with带有搜索的网站
❌免费
❌支持符号
with带有搜索的网站
迁移脚本
$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
}