У меня есть два простых консольных приложения в решении, и я пытаюсь собрать их с помощью конвейера сборки Azure Devops. Они прекрасно подходят для сборки на любом ноутбуке, но конвейер сборки Azure Devops выдает следующую ошибку (соответствующая выдержка):
##[error]C:\Program Files\dotnet\sdk\8.0.303\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): Error NETSDK1005:
Assets file 'F:\SomePath\MyProject\obj\project.assets.json' doesn't have a target for 'net8.0-windows10.0.22621.0'.
Ensure that restore has run and that you have included 'net8.0-windows10.0.22621.0' in the TargetFrameworks for your project.
C:\Program Files\dotnet\sdk\8.0.303\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(266,5): error NETSDK1005:
Assets file 'F:\SomePath\MyProject\obj\project.assets.json' doesn't have a target for 'net8.0-windows10.0.22621.0'.
Ensure that restore has run and that you have included 'net8.0-windows10.0.22621.0' in the TargetFrameworks for your project. [F:\SomePath\MyProject\MyProject.csproj]
Я этого не понимаю, файлы csproj обоих проектов содержат следующую строку: <TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
Я искал в Интернете других людей, столкнувшихся с этой проблемой, и в других случаях, когда эта ошибка была опубликована, предлагалось выполнить восстановление nuget, но я уже делаю это: предыдущим шагом в конвейере было восстановление nuget, которое выполняется успешно.
Я даже не знаю, как начать диагностировать это, все, на что ссылается ошибка, выглядит так, как должно быть.
автономные агенты сборки. Какая именно часть трубопровода вам нужна? Здесь не так уж и много интересного: i.imgur.com/yCPsVH5.png
Если вы скажете They will build just fine on any laptop, but the azure devops build pipeline throws the following error...
, возможно, проблема находится в стадии разработки, поэтому может быть полезно просмотреть все задачи, использованные для построения решения: установка .NET, восстановление пакетов, сборка и т. д.
Возможно, вы переоцениваете сложность используемого мной конвейера. i.imgur.com/us9y8TD.png
Запускаем проверку dotnet sdk на сервере, чтобы быть абсолютно уверенным, что у него есть необходимая версия для выполнения этой сборки: i.imgur.com/MMKLzka.png
Согласно официальной документации для NETSDK1005, версия NuGet должна быть выше 5.8.
На вашем скриншоте похоже, что вы не указали версию NuGet.
Я могу воспроизвести проблему, когда создал простой консольный проект Net8 и использовал старую версию NuGet.
Когда я перешел на использование NuGet 5.8, все заработало.
В этом была проблема; указание версии исправило это. Я не понимаю, зачем использовать старую версию nuget. Я попробовал создать еще один новый конвейер, и он сразу заработал, так что это кажется довольно противоречивым.
Поделитесь соответствующей частью конвейера, которая позволит нам воспроизвести проблему. Кроме того, используете ли вы агенты сборки, размещенные на сервере Microsoft или самостоятельно?