我在CI管道中有一个构建步骤,在那里我为解决方案还原NuGet软件包。我正在从Sonatype Nexus上的NuGet托管存储库中检索我的NuGet软件包。程序包还原本身运行得足够流畅,但是挂起的步骤几乎需要2到3分钟才能验证某些程序包(在本例中为Microsoft提供的程序包)。我完成还原的生成代理无法访问互联网。这就是为什么我还在Sonatype Nexus上使用NuGet代理的原因。例如,它被挂起的步骤是:
PackageSignatureVerificationLog:PackageIdentity:Microsoft.Owin.3.1.0来源:... nuget \ packages \PackageSignatureValidity:真
我已经考虑过将可信签名者列表添加到我的构建的nuget配置中。但是由于我的机器无法访问互联网,因此不会很有帮助。如Microsoft文档中所述:https://docs.microsoft.com/en-us/nuget/reference/cli-reference/cli-ref-trusted-signers
如https://docs.microsoft.com/en-us/nuget/reference/nuget-config-file中所述我还尝试将signitureValidationMode
设置为<add key="signatureValidationMode" value="accept" />
,这种情况下将默认验证软件包。即使这是默认情况,如果未成功连接也将接受它们。但这不会改变我的NuGet还原速度。
除了为我的解决方案所需的所有NuGet验证URL打开网络访问权限。
有没有一种方法可以设置NuGet配置以不以脱机模式为我的构建代理验证NuGet软件包的证书?
经过一番挖掘,我发现了以下Microsoft document。
这将解释脱机计算机(例如构建代理)上可能发生的速度下降问题以及可能的解决方案。
可以通过实现环境变量NUGET_CERT_REVOCATION_MODE
至offline
来解决此问题。
NUGET_CERT_REVOCATION_MODE = 'offline'
在作为詹金斯的工具中,您可以在环境变量中声明它,或者可以在构建计算机上运行命令来设置环境变量。