dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.7k stars 1.06k forks source link

The "ResolveTargetingPackAssets" task failed unexpectedly. #44021

Open brgirgis opened 1 week ago

brgirgis commented 1 week ago

Describe the bug

On OpenSUSE 15.6 and after updating to the latest version 8.0.402, suddenly all my projects are not working:

To Reproduce

Exceptions (if any)

/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018: The "ResolveTargetingPackAssets" task failed unexpectedly. [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018: System.IO.FileNotFoundException: Could not find file '/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/FrameworkList.xml'. [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018: File name: '/usr/share/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/FrameworkList.xml' [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at System.Xml.XmlTextReaderImpl.FinishInitUriString() [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at System.Xml.Linq.XDocument.Load(String uri, LoadOptions options) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolveTargetingPackAssets.AddItemsFromFrameworkList(FrameworkListDefinition definition, IBuildEngine4 buildEngine4, List`1 referenceItems, List`1 analyzerItems) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolveTargetingPackAssets.Resolve(StronglyTypedInputs inputs, IBuildEngine4 buildEngine) [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ResolveTargetingPackAssets.ExecuteCore() [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Microsoft.NET.Build.Tasks.TaskBase.Execute() [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Execute() [/project/package.Common/package.Common.csproj]
/usr/share/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(404,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(TaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [/project/package.Common/package.Common.csproj]

Further technical details

Runtime Environment: OS Name: opensuse-leap OS Version: 15.6 OS Platform: Linux RID: linux-x64 Base Path: /usr/share/dotnet/sdk/8.0.402/

.NET workloads installed: Configured to use loose manifests when installing new manifests. There are no installed workloads to display.

Host: Version: 8.0.10 Architecture: x64 Commit: 81cabf2857

.NET SDKs installed: 8.0.402 [/usr/share/dotnet/sdk]

.NET runtimes installed: Microsoft.AspNetCore.App 8.0.10 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 8.0.10 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found: None

Environment variables: Not set

global.json file: Not found

Learn more: https://aka.ms/dotnet/info

Download .NET: https://aka.ms/dotnet/download

AliveDevil commented 1 week ago

Downgrading dotnet-targeting-pack-8.0 and aspnetcore-targeting-pack-8.0 from 8.0.10-1 to 8.0.8-1 made dotnet build again. Left .NET 8.0.402 Sdk installed.

AliveDevil commented 1 week ago

I think, this is what happened: The .Net 8.0.403 Sdk got released yesterday - alongside targeting pack 8.0.10. But the OpenSuse 15 repo didn’t get the 8.0.403 Sdk (for whatever reason), thus the targeting packs and stuff are up-to-date, but the Sdk itself still relies on 8.0.8 being present (as it doesn’t know about 8.0.10).

In fact: only the Fedora 40 repo got the 403 Sdk. Everything else is broken.

AliveDevil commented 1 week ago

Looks like the packages are available now, but they lie about the creation date:

dotnet-sdk-8.0-8.0.403-1.x86_64.rpm 08-Oct-2024 20:16 152.7 MB

This definitely wasn't there at 2024-10-10T02:00+02:00.

brgirgis commented 1 week ago

I had to go back to 8.0.306 to get it to work. I tried upgrading again to latest today, it is still broken. I'm not sure who owns the zypper repo. Is it Microsoft? or OpenSUSE? I would say Microsoft, because it is on their own servers https://learn.microsoft.com/en-us/dotnet/core/install/linux-opensuse

AliveDevil commented 1 week ago

Looks like the RPM packages don't clean up after themselves, leaving breaking residue.

Following the steps at https://github.com/dotnet/sdk/issues/44082#issuecomment-2406654938 resolved this for me (i.e. delete everything from /usr/share/dotnet/sdk-manifests/8.0.100/workloadsets/ except 8.0.403-*).

brgirgis commented 1 week ago

@AliveDevil and @BorisWilhelms, thanks for the shout. Looks like removing /usr/share/dotnet/sdk-manifests/8.0.100/ solved the issue on OpenSUSE as well