在 Azure DevOps 中使用许可的 NuGet 包
Use licensed NuGet packages in Azure DevOps
我已经支付了通过私人 NuGet 源检索的许可 NuGet 包。
尝试从该来源搜索 visual studio 中的任何包时,它会提示输入用户名和密码。
该应用程序 (Xamarin Forms) 使用这些许可包构建得很好。
另一方面,现在 Azure DevOps 失败了,因为它无法从 nuget.org 恢复金块。
经过研究,尝试了 2 个选项:
选项 1:在 DevOps 中使用 "Service connections" 通过凭据连接到此源,就像在 Visual Studio 中一样,并使用 NuGet 恢复到 select 该服务连接。这会生成一个临时 nuget.config 文件,其 完整 内容为:<configuration/>
任务无法找到丢失的 NuGet。
选项 2:使用 Artifacts,并从我的本地计算机手动推送。
我已经从它们的位置推送了项目引用文件,但是它们的工件描述在末尾附加了 "Trial version"。构建仍然失败并出现此错误:
##[error]The NuGet command failed with exit code(1) and error(NU1101: Unable to find package Infragistics.XF.DV. No packages exist with this id in source(s): 94785e32-5a7b-4923-93b0-abe71c3c1f4c
我假设这两种情况都失败了,因为临时 nuget.config 文件是空白的。在选项 2 之后,配置文件被删除,所以我看不到里面到底有什么。
另请注意,使用 Visual Studio 浏览时,此来源非常慢。
请告诉我如何将私有包放入 DevOps 中?
编辑答案:
Nuget 恢复任务,nuget.config 路径是空白的,因为我希望自动生成一个与答案内容相似的新任务。
我在项目的源代码中添加了一个 Nuget.config 和 2 个提要,它工作正常。
此外,您可以在以下位置找到您的 visual studio 全局 Nuget.config:%AppData%\NuGet
。
Please advise how I could get private packages in to Devops?
假设您的项目需要的包来自两个提要:public nuget.org
和另一个 private 提要:
对于nuget恢复任务,如果我们在feeds to use
中选择Feeds in my Nuget.config
,我们可以在那里配置Credentials for feeds outside this organization/collection
。这就是我们需要的私人提要。
(如果您使用的是 yaml 管道,则相关输入为 feedsToUse
、nugetConfigPath
和 externalFeedCredentials
)
执行以下步骤:
1.Create azure devops repos 中的一个简单 Nuget.Config 文件(与您的解决方案相同的分支):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="PrivateFeed" value="Url of Your Feed, end with index.json" />
</packageSources>
</configuration>
将以上内容复制到 Nuget.Config
文件并保存更改。 (或者您可以获取 Visual Studio 使用的本地 Nuget.Config 并将其添加到源代码管理中)
注意:您应该在 Nuget.Config
文件中输入 nuget.org 的提要 url 和您的私人提要。
2.Configure Path to Nuget.config
.
中 azure devops 存储库中 Nuget.Config
文件的路径
3.Create 私人订阅源的新服务连接(如果您没有):
4.Choose basic Authentication
并输入用户名和密码并为服务连接命名,然后保存。
现在,Azure Devops 服务可以在为您的项目恢复 nuget 包时访问您的私人提要。希望对您有所帮助:)
我已经支付了通过私人 NuGet 源检索的许可 NuGet 包。 尝试从该来源搜索 visual studio 中的任何包时,它会提示输入用户名和密码。 该应用程序 (Xamarin Forms) 使用这些许可包构建得很好。
另一方面,现在 Azure DevOps 失败了,因为它无法从 nuget.org 恢复金块。
经过研究,尝试了 2 个选项:
选项 1:在 DevOps 中使用 "Service connections" 通过凭据连接到此源,就像在 Visual Studio 中一样,并使用 NuGet 恢复到 select 该服务连接。这会生成一个临时 nuget.config 文件,其 完整 内容为:<configuration/>
任务无法找到丢失的 NuGet。
选项 2:使用 Artifacts,并从我的本地计算机手动推送。 我已经从它们的位置推送了项目引用文件,但是它们的工件描述在末尾附加了 "Trial version"。构建仍然失败并出现此错误:
##[error]The NuGet command failed with exit code(1) and error(NU1101: Unable to find package Infragistics.XF.DV. No packages exist with this id in source(s): 94785e32-5a7b-4923-93b0-abe71c3c1f4c
我假设这两种情况都失败了,因为临时 nuget.config 文件是空白的。在选项 2 之后,配置文件被删除,所以我看不到里面到底有什么。
另请注意,使用 Visual Studio 浏览时,此来源非常慢。
请告诉我如何将私有包放入 DevOps 中?
编辑答案: Nuget 恢复任务,nuget.config 路径是空白的,因为我希望自动生成一个与答案内容相似的新任务。 我在项目的源代码中添加了一个 Nuget.config 和 2 个提要,它工作正常。
此外,您可以在以下位置找到您的 visual studio 全局 Nuget.config:%AppData%\NuGet
。
Please advise how I could get private packages in to Devops?
假设您的项目需要的包来自两个提要:public nuget.org
和另一个 private 提要:
对于nuget恢复任务,如果我们在feeds to use
中选择Feeds in my Nuget.config
,我们可以在那里配置Credentials for feeds outside this organization/collection
。这就是我们需要的私人提要。
(如果您使用的是 yaml 管道,则相关输入为 feedsToUse
、nugetConfigPath
和 externalFeedCredentials
)
执行以下步骤:
1.Create azure devops repos 中的一个简单 Nuget.Config 文件(与您的解决方案相同的分支):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="PrivateFeed" value="Url of Your Feed, end with index.json" />
</packageSources>
</configuration>
将以上内容复制到 Nuget.Config
文件并保存更改。 (或者您可以获取 Visual Studio 使用的本地 Nuget.Config 并将其添加到源代码管理中)
注意:您应该在 Nuget.Config
文件中输入 nuget.org 的提要 url 和您的私人提要。
2.Configure Path to Nuget.config
.
Nuget.Config
文件的路径
3.Create 私人订阅源的新服务连接(如果您没有):
4.Choose basic Authentication
并输入用户名和密码并为服务连接命名,然后保存。
现在,Azure Devops 服务可以在为您的项目恢复 nuget 包时访问您的私人提要。希望对您有所帮助:)