.net 从packages.config迁移到packagesreferences原因无法加载文件或程序集“&引用;或者它的一个依赖项。访问被拒绝

.net 从packages.config迁移到packagesreferences原因无法加载文件或程序集“&引用;或者它的一个依赖项。访问被拒绝,.net,msbuild,azure-devops,nuget,packagereference,.net,Msbuild,Azure Devops,Nuget,Packagereference,在将我们的项目升级到PackageReferences之后,我在构建服务器(内部部署AzureDevOps代理)上面临以下问题 对于不同的DLL,这是随机发生的(50%的时间)。这些dll位于不同的目录中:Nuget restore目录、引用程序集或任何其他代码dll 在服务器上,我们使用VS 2017 现在的问题是,当我将项目迁移到PackageReferences时,这种情况就开始发生了。在此之前,我们从未遇到过访问被拒绝的问题。这是完全相同的代码库,具有相同的构建基础结构 我想做的是:

在将我们的项目升级到PackageReferences之后,我在构建服务器(内部部署AzureDevOps代理)上面临以下问题

对于不同的DLL,这是随机发生的(50%的时间)。这些dll位于不同的目录中:Nuget restore目录、引用程序集或任何其他代码dll

在服务器上,我们使用VS 2017

现在的问题是,当我将项目迁移到PackageReferences时,这种情况就开始发生了。在此之前,我们从未遇到过访问被拒绝的问题。这是完全相同的代码库,具有相同的构建基础结构

我想做的是:

  • 我试图与进程监视器进行检查,但没有“拒绝访问”条目。我看得出它读对了
  • 为了安全起见,我在本地机器上安装了代理,以查看这是否不是构建机器的问题,并且它也发生在那里
  • 使用MSBuild或visual studio在本地生成时不会发生这种情况
任何想法都将不胜感激。 至少指向解决方案的方向

[更新]

事实上,我们有整整3天的时间没有服务器上发生的问题,现在又回来了

在使用msbuild(PS脚本)在本地构建时,我们还“设法”获取了一次。从该本地构建和下一个构建(传递一个之后立即触发的构建)的外观来看,我们设法看到nuget正在下载在上一个(失败的)构建中成功下载的包。对于连续传递的构建,我们没有观察到这种行为。Nuget不会每次下载新包,除非已清理

[更新2] Nuget还原步骤和生成步骤的调试日志文件

谢谢


我建议在构建代理上运行。这将为您提供在此期间所有文件系统和注册表活动的完整审计。因此,在代理上启动它,在代理上进行两次构建以重现问题,然后暂停procmon并查看日志。按流程、文件或路径进行筛选,以缩小您的问题范围。这会让你对正在发生的事情有一个更清晰的答案,答案会自动出现,或者很容易从这里找到答案。

你的角色是什么?您的帐户是管理员帐户吗?是的。当我构建一个旧版本的源代码(w/o package ref)时,它在100%的时间内都可以正常工作。另外,当在本地尝试时,它也与我的帐户一起安装,所以admin.Ok。但我仍然认为这个问题非常棘手。服务器中的VS版本是否与您使用的本地版本相同?如果不是,请确保它们是相同的。此外,您是否介意共享已完成的构建管道日志?也许可以从中找到一些东西。服务器和本地开发环境的版本都是一样的。我们将尝试尽快将其更新到vs19,但目前还无法完成。我将了解构建日志。应该可以共享。请右键单击C:\Program Files(x86)\Reference Assembly folder->properties->Add users“Everyone”并进行检查。之后,将其分配为完全控制。如果修改此文件权限,我只会复制错误消息。但不确定是否符合你的要求
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Xaml.targets(193,5): 
Error XC1000: XC1020: Build error occurred in the XAML MSBuild task: 
'Could not load file or assembly 'file:///C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\Facades\System.Threading.ThreadPool.dll'
 or one of its dependencies. Access is denied.'"