.net core Azure DevOps中带有私有包suorce的Dotnet build无法从私有nuget源还原

.net core Azure DevOps中带有私有包suorce的Dotnet build无法从私有nuget源还原,.net-core,azure-devops,nuget,azure-pipelines,azure-artifacts,.net Core,Azure Devops,Nuget,Azure Pipelines,Azure Artifacts,我们的项目引用了Azure DevOps中私有工件源中的包。在Azure DevOps中构建项目时,dotnet还原完成得很好,但是dotnet构建也会尝试还原包,并且失败 Unable to load the service index for source https://myazdevops.pkgs.visualstudio.com/_packaging/OurPackages/nuget/v3/index.json 解决方法是向dotnet构建和dotnet发布任务添加--无恢复 有

我们的项目引用了Azure DevOps中私有工件源中的包。在Azure DevOps中构建项目时,
dotnet还原
完成得很好,但是
dotnet构建
也会尝试还原包,并且失败

Unable to load the service index for source https://myazdevops.pkgs.visualstudio.com/_packaging/OurPackages/nuget/v3/index.json
解决方法是向
dotnet构建
dotnet发布
任务添加
--无恢复


有没有办法让构建和发布在没有这些参数的情况下开始工作?

我对我们的内部NuGet提要也有类似的问题。 我通过在存储库中添加nuget.config文件解决了这个问题,该存储库包含nuget.org和我们的内部nuget存储库

<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="internal" value="URL_TO_INTERNAL_FEED" />
  </packageSources>
</configuration>

然后,只需在还原步骤中指定NuGet.config到该文件的路径即可


希望这会有所帮助。

我认为您的解决方案就是解决方案,以书面形式:

从.NET Core 2.0 SDK开始,当 您运行dotnetbuild。如果要在以下情况下禁用隐式还原: 运行build命令,可以传递--no restore选项

除非添加<代码>--无还原,否则无法禁用此行为


另请参见问答。

我们已经在Github中打开了源代码,您可以参考命令代码。这是一个compile命令,所以我们没有在任务中创建脚本来另外设置authinfo。另外,正如您所知,
dotnet restore
隐式运行
dotnet build
仅在.net core 2.0之后运行。事实上,如果您在
dotnet构建之前已运行
dotnet restore
,则隐式运行的
dotnet restore
不是必需的部分。这就是为什么我们提供了-add
——no restore
——以避免隐式地执行此命令

这是一种非常方便的方法,可以使编译过程非常简洁。但是,如果您仍然不想使用此参数,则需要执行另一个配置作业以使用凭据进行授权


配置,然后使用
VSS\u NUGET\u EXTERNAL\u FEED\u端点传入凭据
VSS\u NUGET\u EXTERNAL\u FEED\u端点
包含您需要使用JSON格式进行身份验证的任何提要的端点凭据

我们确实这样做了,但随后401访问被拒绝。看起来dotnetrestore是唯一可以针对nuget repo进行身份验证的命令。我还添加了--没有要发布的构建步骤,因为它已经构建好了。如果你可以接受它…但是为什么dotnet build不能像dotnet restore那样针对nuget存储进行身份验证?@MathiasR I don't know:/正是我提供的问题中的问题。也许微软的人会提供帮助。根据下面的回答“…dotnet build命令。这是一个编译命令,所以我们没有在任务中创建脚本来设置authinfo”,所以这些参数似乎是最简单的方法