Azure devops 从副本发布nuget包

Azure devops 从副本发布nuget包,azure-devops,nuget-package,Azure Devops,Nuget Package,看来我的队友们已经关掉了nuget服务器,去度假了。 我需要一个临时解决方案,以便在恢复nuget包时我的Azure开发操作构建不会失败 我有一份包裹的本地副本 C:\Users\kirst.nuget\packages\mypackagetemp 我想发布到一个临时提要 我阅读了说明,但对第6步感到困惑 当然我不需要设置项目和恢复包,因为我已经有了.nupkg 我试过这个命令 c:\nuget\nuget.exe push -Source "TempFeed" -ApiKey az mypac

看来我的队友们已经关掉了nuget服务器,去度假了。 我需要一个临时解决方案,以便在恢复nuget包时我的Azure开发操作构建不会失败

我有一份包裹的本地副本

C:\Users\kirst.nuget\packages\mypackagetemp

我想发布到一个临时提要

我阅读了说明,但对第6步感到困惑 当然我不需要设置项目和恢复包,因为我已经有了.nupkg

我试过这个命令

c:\nuget\nuget.exe push -Source "TempFeed" -ApiKey az mypackagetemp.nupkg
但我犯了一个错误

无法加载源的服务索引

当我重复该命令时,我会收到一个凭据请求 当我输入凭据时,我连接到Azure开发人员操作系统,但这些凭据不起作用

[更新]

我被要求出示证件。。读起来。。。太令人困惑了

[更新]

我将nuget.exe从5.1.0.6013升级到了最新版本5.4.0.6315,这次我得到了一个要登录的UI和消息

你的包裹被推了

但是,当devops管道构建运行时,我会收到一条消息

unable to load the service index for source
https://pkgs.dev.azure.com/mycompany/myproject/_packageing/TempFeed/nuget/v3/index.json
我想我需要创建一个index.json文件

我的项目使用的mynuget.config在packagesources中包含以下内容

 <add key="TempPackage" value="https://pkgs.dev.azure.com/mycompany/_packaging/myfeed/nuget" />
“Serilog.Enrichers.Thread”,
响应状态代码不表示成功:404(未找到)。)

我的解决方案使用Serilog。我认为第三方软件包没有使用它

[更新]

下次构建时,我在查找WindowsAzure.Storage时遇到了另一个错误

每次构建管道时,我似乎都会得到一个不同的文件,从而导致错误

我的项目工件有2个提要。需要的文件在未选择的提要中

[更新]

我试图编辑mynuget.config以使用index.json,但出现了生成错误

nuget命令失败,退出代码(1)和错误(无法加载) 源的服务索引 . 响应状态代码不表示成功:404(未找到-错误) ID为“MyFeed”的源不存在

[更新]

因为新的feed是基于项目的,所以我编辑了mynuget.config以

  <add key="TempPackage" value="https://pkgs.dev.azure.com/mycompany/_packaging/myfeed/nuget/v3/index.json" />
  <add key="TempPackage" value="https://pkgs.dev.azure.com/mycompany/myproject/_packaging/myfeed/nuget/v3/index.json" />


现在它可以工作了!

在Azure Devops web门户中,对于您当前的项目,请转到
Artifacts
选项卡,并确保您的包如
mypackagetemp.nupkg
在那里可用

对我来说,我有自定义的
LibraryCore.nupkg
推到那里。现在让我们单击
connecttofeed
设置,选择
nuget.exe
,您可以看到:

将完全相同的内容复制到您自己的
mynuget.config
文件中。然后,您的构建管道可以访问您发布的
mypackagetemp.nupkg

无法从中检索有关“Serilog.Enrichers.Thread”的信息 远程源 ““Serilog.Enrichers.Thread”, 响应状态代码不表示成功:404(未找到)。)

下一次构建时,我在查找时遇到了另一个错误 WindowsAzure。存储

这些包(
Serilog.Enrichers.Thread
WindowsAzure.Storage
和…)都可以在nuget.org中找到,因此您还应该确保已将nuget.org作为包源添加到配置文件中:

此外:

根据您的描述,您只需要使用来自
nuget.org
的自定义devops提要和其他包,除了使用
mynuget.config
之外,您还可以像这样配置
nuget restore
任务:


直接选择devops提要(第二条红线)通过
feed,我在这里选择
而不是在我的
Nuget.config
中选择feed。并选中
Use packages from Nuget.org
复选框。然后您可以在构建过程中访问自定义feed和Nuget.org中的包。

请参阅,如果您使用Nuget还原任务或类似任务,我们可以确定
feedstouse
选择
>(使用devops feed+nuget.org)或
config
(自定义nuget.config文件)。对于您得到的错误,这意味着401未经授权。因此这是一个与权限相关的问题。您可以使用
选择
方式,导航到Artifacts=>feed settings=>permissions=>add user/groups=>add your
current projectName build service
作为所有者角色,以确保您的构建有权从feed获取包。my temp源属于项目范围。我想知道它是否需要组织范围1。如果您的临时源和当前生成管道属于同一个项目,那么它应该可以工作。如果您的临时源属于项目A而生成管道属于项目B,则您应该确保项目A已将
项目B生成服务帐户添加为成员,以便项目B的构建管道可以访问来自项目A的提要。2.如果您在回答中看到我的更新,则在配置还原任务(使用UI)时,可以使用select方式而不是mynuget.config,单击Azure Artifacts/tfs feed中的
使用包的下拉列表,如果您能在那里找到所需的源,请单击该列表。我的tempfeed属于该项目,但我仍然需要在mynuget.config中提及该项目的名称。这可能是因为该项目还使用了公司范围的包。我在mynuget.config中有nuget.org。我没有确定我为什么需要为myProjectSamples创建index.json或如何it@KirstenGreed为什么要手动创建index.json?既然您成功地推送了包,那么您就可以使用URL格式
xxx/index.json
,我们实际上不需要自己创建它……您只需要按照上面的步骤来确定URL是什么你需要复制到MyNuget.config文件。另外,我猜你的错误发生在nuget还原步骤中,你可以在那里检查你的日志,在日志的末尾,你可以看到类似于使用的
提要的内容,确保你的MyNuget.config能够提供正确的提要。你有关于如何创建和推送索引的说明吗?json?@Kirst对不起,我不知道该怎么做