.NET Interactive Notebooks如何覆盖已加载的NuGet包版本
.NET Interactive Notebooks 切换已加载NuGet包版本的解决方案
核心原因
.NET Interactive 内核依托.NET运行时的程序集加载机制,同一进程会话中不允许加载同一程序集的多个版本,因此已加载某版本NuGet包后,无法在当前会话中直接卸载、覆盖替换为其他版本,这是底层运行时的固有特性,并非扩展功能缺失。
你遇到的报错是因为第一次不带版本号加载包时,内核默认拉取了最新稳定版3.11.0并加载进当前进程,后续请求其他版本时就会触发冲突。
可行操作步骤
方法1:重启内核后直接加载目标版本
- 点击VSCode Notebook界面顶部工具栏的重启内核按钮(环形箭头图标),清空当前会话所有已加载的程序集
- 将目标版本的包加载命令放在首个代码单元直接运行,不要提前加载其他版本:
#r "nuget: Microsoft.CodeAnalysis.Workspaces.MSBuild, 4.0.0-3.final"方法2:多版本测试场景拆分Notebook文件
如果需要频繁在不同包版本下做测试,可以为每个版本创建独立的.ipynb文件,每个文件内仅加载对应版本的NuGet包,从根源避免版本冲突。避坑提示
建议将所有NuGet依赖声明统一放在Notebook最开头的第一个代码单元中,所有包都显式标注需要的版本号,避免漏写版本默认拉取稳定版导致后续冲突。
内容的提问来源于stack exchange,提问作者farlee2121
相关产品推荐
相关产品推荐

