System.FormatException thrown when restoring package with invalid copyToOutput attribute on content files
#10,303 opened on 2020年11月19日
Repository metrics
- Stars
- (1,459 stars)
- PR merge metrics
- (平均マージ 464d 23h) (30d で 1 merged PR)
説明
Details about Problem
NuGet product used (NuGet.exe | VS UI | Package Manager Console | dotnet.exe): msbuild.exe as part of Visual Studio 16.8.1
NuGet.Build.Tasks version: 5.8.0.6930
msbuild -version: Microsoft (R) Build Engine version 16.8.1+bd2ea1e3c for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved.
16.8.1.52902 VS version (if appropriate) 16.8.1
OS version (i.e. win10 v1607 (14393.321)): win10 v1909 (18363.1082)
Worked before? If so, with which NuGet version: Not sure
Detailed repro steps so we can see the same problem
-
Create a nuget package with a non-bool value for a copyToOutput attribute ("PreserveNewest" and/or "Never") were used in my case.
-
Add a reference to that NuGet package using a item in a .NET SDK project
-
Run msbuild /t:restore on the project.
-
The restore fails with a
System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list. thrown fromNuspecReader.AttributeAsNullableBoolinstead of a more helpfulPackagingExceptionwith information about the actual package issue.
Verbose Logs
MsBuild logs are uploaded in logfiles.zip
Sample Project
Download and extract reproduce.zip and call msbuild reproduce.proj