Azure Pipeline运行报错:已存在的Sitecore.Analytics.Model.NoReferences包未被识别
问题
运行基于C# .NET和MSBuild 15的Azure Pipeline时,出现NuGet包找不到的报错,报错信息如下:
Package 'Sitecore.Analytics.Model.NoReferences 9.0.180604' is not found in the following primary source(s): 'C:\Users\VssAdministrator.nuget\packages\nuget'. Please verify all your online package sources are available (OR) package id, version are specified correctly.
已确认指定版本的包存在于对应路径中,且执行过install Sitecore.Analytics.Model.NoReferences -Version 9.0.180604命令、禁用了中央包管理器,询问如何解决该问题,是否需要在Pipeline作业中进行额外配置。
解决方法
- 修正NuGet源路径配置:报错中的路径
C:\Users\VssAdministrator.nuget\packages\nuget存在异常,正常本地NuGet包存储路径应为C:\Users\VssAdministrator\.nuget\packages\,多了nuget后缀。可在Pipeline的NuGet任务中显式指定正确的本地源,添加参数:-Source C:\Users\VssAdministrator\.nuget\packages\。 - 添加独立的NuGet还原步骤:在Azure Pipeline作业中新增NuGet还原任务,而非依赖MSBuild自带的还原逻辑。先通过NuGet工具任务指定与本地一致的NuGet版本,再执行
nuget restore 你的解决方案路径.sln命令,同时显式指定本地源。 - 检查代理账户权限:确认Pipeline使用的VssAdministrator账户对
C:\Users\VssAdministrator\.nuget\packages\目录拥有读取权限,避免因权限不足导致无法访问包文件。 - 验证包完整性:即使已确认包存在,仍需检查包的目录结构是否完整,比如是否存在
Sitecore.Analytics.Model.NoReferences\9.0.180604层级,且目录内包含完整的包文件(如.nupkg、相关元文件),不完整的包会导致MSBuild无法识别。 - 调整NuGet配置优先级:禁用中央包管理器后,需确保NuGet配置文件(
NuGet.Config)中本地源的优先级高于远程源,或者在Pipeline任务中强制指定仅使用本地源进行还原。
内容的提问来源于stack exchange,提问作者Cesar Tovar
相关产品推荐
相关产品推荐

