visual-studio - 在 Visual Studio Build 和 nuget restore 命令期间,packages.config 文件被忽略
问题描述
我正在尝试在 vs 构建或命令行构建上设置自动 nuget 包恢复。遵循指定的 Microsoft 文章时: https ://docs.microsoft.com/en-us/nuget/consume-packages/package-restore#migrate-to-automatic-package-restore-visual-studio
我无法让 Visual Studio 2019 或以下命令(nuget restore mysolution.sln、msbuild -t:restore、msbuild -restore)从我的每个项目中的 packages.config 文件中读取
我尝试了以下方法:
删除每个项目文件中对 PackageReference 的任何引用
删除每个项目中的 bin 和 obj 文件夹
使用以下内容添加本地 nuget.config:
删除本地包文件夹
删除全局包文件夹
运行以下命令:nuget locals all -clear
更新了 Visual Studio -> 工具 -> 选项 -> NuGet 包管理器并设置“允许 Nuget 下载丢失的包”和“在 Visual 中构建期间自动检查丢失的包”并将默认包管理格式设置为“Packages.config”
重新启动 Visual Studio 几次。
当我为我的解决方案运行 nuget restore 命令时,它会尝试从每个项目文件中的 packagereference 进行恢复,但由于我没有任何内容,因此它什么也不做,但仍会创建相应的 nuget.g.props 和 project.assets.json 文件。我不能在项目文件中使用包引用,因为它不能移植到其他项目。
我需要能够将 packages.config 文件与构建命令之一一起使用。我很困惑为什么这不起作用
解决方案
您必须.vs
从解决方案文件夹中删除隐藏文件夹,它仍然恢复旧的 nuget 管理格式PackageReference,并且仍然使用它。
尝试以下步骤:
1)关闭VS,删除.vs
隐藏文件夹和每个bin
文件obj
夹。
2)确保每个packages.config
都在项目文件夹中,以便它可以工作。
3)如果您使用自己的 nuget.config,请确保其包源包含所有 nuget 包。或者文件是多余的,你应该删除它,然后在 VS IDE 下添加 nuget 包源。
3)重启VS,update-package-reinstall
在Tools --> Nuget Package Manager --> Package Manager Console下运行
4)之后,您可以删除全局nuget文件夹和本地nuget文件夹,然后运行nuget restore xxx.sln
检查。
编辑:确保您的项目不是SDK 风格的项目;packages.config 文件不支持 SDK 项目(请参阅此)。
推荐阅读
- javascript - 画布:修改分辨率
- c# - Autofac 通用装饰器未触发(使用 mediatr)
- python-3.x - 为什么插入新元素后 ''.join(list1) 不起作用?
- c# - 在 SpecFlow 中的多个功能文件之间共享步骤声明
- r - 具有分类变量的多变量回归交互项
- javascript - 如何在 Promise.finally() 中测试 Promise 的状态而不在生产代码中等待它
- excel - 粘贴后删除表格图像
- java - 通过JDBC查询小写表名
- delphi - 如何声明一个恒定的 Tpoint?
- docker - Jenkins 的 Docker 云插件