NuGet/Home

System.FormatException thrown when restoring package with invalid copyToOutput attribute on content files

Open

#10,303 创建于 2020年11月19日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)HTML (292 fork)batch import
Area:ErrorHandlingFunctionality:RestorePriority:3Type:Bughelp wanted

仓库指标

Star
 (1,459 star)
PR 合并指标
 (平均合并 464天 23小时) (30 天内合并 1 个 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

  1. Create a nuget package with a non-bool value for a copyToOutput attribute ("PreserveNewest" and/or "Never") were used in my case.

  2. Add a reference to that NuGet package using a item in a .NET SDK project

  3. Run msbuild /t:restore on the project.

  4. 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 from NuspecReader.AttributeAsNullableBool instead of a more helpful PackagingException with 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

贡献者指南