我在 Visual Studio 2019 (v.16.9.0) 中遇到了 Nuget 的一个奇怪(新)问题。
解决方案都是 ASP.NET Web 应用程序 (MVC)。我在本地局域网上运行。在 Nuget 包管理器中,“允许 Nuget 下载包”和“在构建期间自动检查丢失的包”都被选中。我正在使用 Packages.Config 进行管理,来源是https://api.nuget.org/v3/index.json。VS 能够通过 Windows Defender 防火墙进行通信。目标框架是.Net 4.7.2
第一个问题是当我在删除文件夹中的包后执行包还原时,它显示此错误:The requested operation cannot be executed on a file with a user-mapped section open。在我进行构建之后,将正确创建文件,包括新的/现有的 DLL。这些补充/刷新的 DLL 运行良好,程序运行。然而,奇怪的是,相关的 NUPKG 文件的内容为零(这显然会触发错误)。在我假设的 DLL 下载完成后,该消息最终会消失。到目前为止一切都很好,但 NUPKG 文件中的内容为零。
当我现在尝试更新一个包时,事情出错了,错误列表显示:
尝试还原软件包时出错。该文件不是有效的 nupkg。文件路径...
然后在完全重启 VS 后,我得到了这个:
从源“I:....\packages”检索“ABC.3.5.0.2”的包元数据时出错。'ABC' 是包列表中的第一个文件。因此,它似乎失败了,因为相关的 NUPKG 没有内容。
我可以将任何文件自由粘贴到包文件夹及其子文件夹中,这表明文件没有锁定。VS 也能够毫无问题地将包结构的其余部分写入文件夹。
恕我直言,这一定意味着某些东西专门锁定/阻止了 NUPKG 文件(或者可能在创建过程中删除它们的内容?)。搜索显示我看不到任何东西。
我什至尝试创建一个全新的解决方案。在创建过程中,上面相同的错误消息弹出了一个警告。我还尝试了其他一些我现有的解决方案并得到了相同的结果。我更新了 VS,然后我什至将 VS 重新安装到了最新版本,但都无济于事。
在 Azure Web App 部署期间定义依赖项后,我首先注意到了这个问题(Azure 部署工具可选地允许更新 Nuget 包)。在 Nuget 更新失败后,我将选项设置为空白并无论如何都已部署,其想法是稍后手动更新软件包。我不能确定,但我认为这是我发现问题的时候。这个过程是否可能在某处更改了 VS 配置设置?
在重新安装之前,我从 VS 内部打开了 devenv.exe.config 并将 IPV6 设置更改为 false。没有运气,所以我把它改回来了。我还对其中一个包进行了测试,直接从 Nuget 站点下载包并替换 VS 下载的版本,但我得到了同样的错误。
Install failed. Rolling back... Package 'System.Buffers 4.5.1' does not exist in project 'ClickAuth_Graph' Package 'System.Buffers 4.4.0' already exists in folder 'I:\My Drive\Backups\ClickAuth_Graph (01_03_21)\packages' Added package 'System.Buffers 4.4.0' to 'packages.config' Removing package 'System.Buffers 4.5.1' from folder 'I:\My Drive\Backups\ClickAuth_Graph (01_03_21)\packages' This file is not a valid nupkg. File path...\packages\System.Buffers.4.5.1.nupkg Central Directory Corrupt An attempt was made to move the file pointer before the beginning of the file. At line:1 char 1 • Update-Package System.Buffers +CategoryInfo NotSpecified: (:) [Update-Package], Exception o FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.UpdatePackageCommand
作为记录,我在投资组合中有一个陈旧的 Nuget 包。我不使用 Github,但预先设置了一个存储库。我最近没有向 Github 提交任何内容。
有没有专家可以提供帮助?