【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

微软发布 Visual Studio 扩展 NuGetSolver,简化 NuGet 依赖项冲突解决过程

作者:Almir Vuk

  • 2024-02-17
    北京
  • 本文字数:1204 字

    阅读完需:约 4 分钟

微软发布 Visual Studio 扩展 NuGetSolver,简化 NuGet 依赖项冲突解决过程

最近,微软发布了一款名为 NuGetSolver 的实验性工具。这个 Visual Studio 扩展是与微软研究院合作创建的,旨在简化 Visual Studio 项目中 NuGet 依赖项冲突的解决过程。该扩展高效地解决了常见的 NuGet 错误和警告,帮助开发者在 Visual Studio IDE 中提高工作效率。


据报道,该工具有效地解决了最常见的 NuGet 错误和警告,如依赖包之间的 约束(NU1107)、依赖包不包含任何与项目兼容的资源(NU1202)、检测到的包降级(NU1605),以及当资源可能不是 100% 兼容时的警告(NU1701)。


要开始使用 NuGetSolver,开发者可以从 Visual Studio Marketplace 下载这个名为 NuGetSolver 的扩展。这个实验性扩展通过分析所有依赖关系并提供智能和自动化建议来解决 NuGet 依赖冲突的问题。


用户可以通过在 Solution Explorer 中右键单击并选择 Resolve Dependency Conflicts 选项来访问该工具。据报道,该工具会通过快速计算来确定可能的建议,并显示当前状态与建议状态之间的差异。用户还可以切换到 Show only changes 来查看完整的依赖列表。



(在 Visual Studio 中使用 NuGetSolver,来源:Microsoft DevBlogs)


默认情况下,该工具建议使用稳定版本,如果需要,还可以选择包含预发布版本。原博文透露,如果开发人员接受推荐的建议,应选择 Apply fix 选项,然后重新构建解决方案以验证解决方案。此外,作者还指出:


建议在你的存储库中启用源代码控制,以便在必要时可以轻松恢复 NuGetSolver 所做的更改。


此外,文中还指出,如果解决方案当前没有依赖冲突,开发者仍然可以运行该工具来升级依赖项,尽量减少更改。这比使用 NuGet 包管理器一个一个地升级包更快速、更可靠,尤其是在面对其他依赖约束时。


该工具需要 Visual Studio 2022 和网络连接才能正常使用。它从 nuget.org 检索可用的包版本,并从提供的缓存托管服务下载缓存数据库文件。


不过,在使用时要注意一些使用建议和已知的限制。目前仅支持 nuget.org 源,不支持多源和本地源。虽然尚未完全支持多目标框架,但该工具可能会为某些目标框架生成修复方案。如果使用自定义 MSBuild 逻辑进行版本设置,Apply Fix 功能可能无法完全支持更新版本。


需要注意的是,当切换到 Include prerelease 选项时,NuGetSolver 在建议计算中可能不会考虑所有可用的预览版本。对于使用packages.config或 legacy-sdk 样式的项目,该工具可以生成建议,但无法直接应用修复,需要开发者手动修复。


虽然 NuGetSolver 可以解决编译时依赖冲突,但仍可能出现运行时错误。此外,该工具不验证建议的版本是否存在已知漏洞,因此建议开发者使用 NuGet 中的审计功能来解决此问题。


总的来说,NuGetSolver 对于希望在 Visual Studio 中简化 NuGet 依赖管理的开发者来说非常宝贵的一款工具。它通过自动化冲突解决并提供依赖图的可视化表示,提高了效率,让开发人员能够专注于构建出色的应用程序。


查看英文原文

https://www.infoq.com/news/2024/01/introducing-nuget-solver/

2024-02-17 08:009008

评论

发布
暂无评论
发现更多内容

亮相数字化转型大会!卡奥斯助力两化融合工业转型!

Openlab_cosmoplat

工业互联网 开源社区

百度荣获 CCIA数据安全工作委员会突出贡献奖

百度安全

百度获CCIA数安委《数据安全和个人信息保护社会责任指南》首批试点示范单位

百度安全

迪士尼的“元宇宙梦”醒了

Openlab_cosmoplat

开源社区 元宇宙

国内外低代码开发平台优劣势一览

YonBuilder低代码开发平台

如何当个优秀的文档工程师?从 TC China 看技术文档工程师的自我修养

NebulaGraph

技术文档

开心档之MySQL 序列使用

发声全球边缘计算大会,火山引擎荣获“最佳边缘云服务商”称号

火山引擎边缘云

火山引擎 边缘云 火山引擎边缘计算

卡奥斯赋能发展引擎,“工赋山东”再加“数”!

Openlab_cosmoplat

工业互联网 开源社区

让ChatGPT手把手教我们学操作系统是一种怎样的体验?

Java全栈架构师

程序员 AI 后端 操作系统 计算机

靠近用户侧和数据,算网融合实现极致协同

阿里云视频云

云计算 边缘计算 边缘云

开心档之Go 语言环境安装

雪奈椰子

开心档之Go 错误处理

雪奈椰子

GitHub开源3小时,一直被哄抢!800页全彩《微服务架构深度解析》

做梦都在改BUG

Java 架构 微服务

焱融科技荣获爱分析·信创产品及服务创新奖

焱融科技

#高性能 #分布式文件存储 #文件存储 #全闪存储 #容器存储

OpenCloudOS 9.0 发布:首个全自研服务器操作系统

OpenCloudOS

Linux

开心档之MySQL WHERE 子句

分享交流丨九科信息董事&产品VP傅恺受邀出席第三届ISIG中国产业智能大会并分享企业优秀案例

九科Ninetech

C++面试必备:常见C++面试题汇总及详细解析

小万哥

面试 软件开发 C/C++ 常见 汇总

Linux 开启或关闭 SELinux

HoneyMoose

前端培训学习的就业前景怎么样

小谷哥

联想Yoga Book 9i双屏笔记本发布:两块13寸2.8K触摸屏

Geek_2d6073

传统支付和虚拟币支付区别是什么?开发一个USDT 支付接口

加密先生

苹果电脑删除磁盘分区及双系统分区的办法

互联网搬砖工作者

ChatGPT已能操控机器人,工程师连代码都不用写,网友:微软在搞天网?

Openlab_cosmoplat

人工智能 机器人 开源社区 ChatGPT

你的留言,我们都收到了

OceanBase 数据库

数据库 oceanbase

不会PS没关系,AI拼图技术已能以假乱真|斯坦福研究

Openlab_cosmoplat

开源社区 ps

寻找“乘风破浪”的出海创新势力丨 2023出海企业创新价值榜报名启动

创业邦

Double-check 技术:Golang 中多线程编程的必备技能

Jack

golang 设计模式

智慧公厕解决方案,光明源方案揭秘

光明源智慧厕所

智慧城市

新能源的B面:下沉市场的机会与变量

Alter

新能源 下沉市场

微软发布 Visual Studio 扩展 NuGetSolver,简化 NuGet 依赖项冲突解决过程_微软_InfoQ精选文章