我正在尝试重新提交来自另一位作者的问题,该问题因缺乏详细信息而被关闭。 我有一个 ASP MVC .NET6 WebApp,它已经运行良好很长时间了。昨天,我添加了一些小代码并将其推送到我的 DevOps 存储库,该存储库通过 Pipeline 链接到我的 Web 应用程序上的暂存槽(通过部署中心部分)。 几个月来一切都运行良好,但昨天开始出现故障。 我的部署日志看起来很好,直到出现此错误
C:\Program Files (x86)\dotnet\sdk\9.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): error NETSDK1060: Error reading assets file:
Error loading lock file 'C:\home\site\repository\obj\project.assets.json' :
Could not load file or assembly 'System.Text.Json, Version=8.0.0.4, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies.
The system cannot find the file specified. [C:\home\site\repository\[MyApp].csproj]
Done Building Project "C:\home\site\repository\[MyApp].csproj" (default targets) -- FAILED.
我什至不在我的代码中使用 System.Text.Json,尽管它肯定是其他几个 nuget 包(Azure.Storage.Blobs、Azure.Search 等...)的依赖项
我对“Version=8.0.0.4”是什么感到困惑? 为什么是4级? 不应该是8.0.0吗? 查看project.assets.json,没有任何依赖项需要该版本。
我的临时解决方案是本地编译并自行部署。 我必须创建一个全新的插槽,并使用 VS Code 的 Azure 工具执行 Azure 应用服务:部署到插槽。 这仅适用于全新的插槽 - 如果我尝试部署到之前使用上面的 DevOps 部署失败的插槽,它就会失败。
欢迎任何有关如何实际解决 DevOps 部署中的问题的建议。
根据您的描述,当您使用部署中心部署.net6项目时,会出现以下错误:
无法加载文件或程序集“System.Text.Json,版本=8.0.0.4,...
我最近的部署遇到了完全相同的问题。
问题的根本原因是,Azure Web App Service 默认情况下将继续使用 .net9(.net 9.0.100),并且会忽略 Web 应用程序中的自定义 .net 版本(例如 .net6.0)或项目。
问题似乎来自应用服务本身。我建议您可以向产品反馈网站报告此问题:Azure 社区
要解决此问题,您可以在项目根目录定义 global.json 文件并设置目标 .net 版本。
例如:.net6.0
global.json
{
"sdk": {
"version": "6.0.424",
"rollForward": "latestFeature"
}
}
以下是 Web App 中可用的 .net 版本:
在这种情况下,它将使用 global.json 文件中设置的版本来构建和部署您的项目。