将我们的项目升级到 PackageReferences 后,我在构建服务器上面临以下问题(本地 AzureDevOps 代理)
"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.'"
这对于不同的 Dll 随机发生(50% 的时间)。这些 dll 位于不同的目录中:Nuget 恢复目录、参考程序集或任何其他代码 dll。
在服务器上,我们使用的是 VS 2017。
现在,当我将项目迁移到 PackageReferences 时,事情就开始发生了。在此之前,我们从未遇到过拒绝访问的任何问题。这是完全相同的代码库,具有相同的构建基础设施。
我试图做的:
- 我试图检查进程监视器,但那里没有“拒绝访问”条目。我可以看到它被正确读取
- 为了安全起见,我在本地机器上安装了代理,看看它是否不是构建机器的问题,它也确实发生在那里
- 当我们使用 MSBuild 或 Visual Studio 在本地构建时,不会发生这种情况
任何想法,将不胜感激。至少要指出解决方案的方向。
[更新]
实际上,我们有整整 3 天的时间没有服务器上发生的问题,现在它又回来了。
我们还“设法”在使用 msbuild(PS 脚本)在本地构建时获得它一次。从该本地构建和下一个构建的外观(通过一个之后立即触发),我们设法看到 nuget 正在下载在上一个(失败)构建中成功下载的包。我们没有观察到连续传递构建的行为。除非清理,否则 Nuget 不会每次都下载新包。
[Update2] Nuget 还原步骤和构建步骤的调试日志文件。
谢谢
米