Mal*_*nko 5 .net c# nexus nuget nuget-package-restore
我的 CI 管道中有一个构建步骤,我可以在其中恢复解决方案的 NuGet 包。我正在从 Sonatype Nexus 上的 NuGet 托管存储库检索我的 NuGet 包。包还原本身运行得足够流畅,但它在验证某些包(在本例中是 Microsoft 提供的包)时花费了近 2 到 3 分钟的步骤中挂起。我完成此恢复的构建代理无法访问互联网。这就是为什么我还在 Sonatype Nexus 上使用 NuGet 代理。例如,它被挂起的步骤是:
PackageSignatureVerificationLog:PackageIdentity:Microsoft.Owin.3.1.0 来源:...nuget\packages\ PackageSignatureValidity:True
我考虑过将可信签名者列表添加到我的构建的 nuget 配置中。但由于我的机器无法访问互联网,这不会很有帮助。如 Microsoft 文档中所述: https://learn.microsoft.com/en-us/nuget/reference/cli-reference/cli-ref-trusted-signers
如https://learn.microsoft.com/en-us/nuget/reference/nuget-config-file中所述,
我还尝试设置在这种情况signitureValidationMode下<add key="signatureValidationMode" value="accept" />将默认验证包。即使这是默认情况,如果连接失败则接受它们。但这不会改变我的 NuGet 恢复速度。
除了为我的解决方案需要的所有 NuGet 验证 URL 开放网络访问之外。
有没有办法可以将 NuGet 配置设置为不在构建代理的离线模式下验证 NuGet 包的证书?
经过一番挖掘后,我发现了以下Microsoft 文档。
这解释了离线计算机(例如构建代理)上可能出现的速度减慢问题以及可能的解决方案。
该问题可以通过将环境变量实施为NUGET_CERT_REVOCATION_MODE来解决offline。
NUGET_CERT_REVOCATION_MODE = 'offline'
Run Code Online (Sandbox Code Playgroud)
在 Jenkins 这样的工具中,您可以在环境变量中声明它,也可以在构建机器上运行命令来设置环境变量。