使用片段时,有没有办法自动导入必要的 NuGet 包?

Is there a way to automatically import necessary NuGet packages, when using a snippet?

我一直在尝试创建一些 snippets,但未能找到在用户提示片段时自动导入 NuGet packages 的方法。

该文档包含有关自动包含本地可用资源(例如 System.Collections.Generic)但不包含外部可用资源(例如System.Data.SqlClient)的说明=12=]

如有任何帮助,我们将不胜感激!

我不认为这是可能的。

如果您的代码片段能够更新项目文件,那么您可以执行 Restore NuGet Packages

Is there a way to automatically import necessary NuGet packages, when using a snippet?

我觉得你得不到你想要的。

Code snippet相当于快速插入代码片段,只作用于代码编辑器,所以不能超出编辑器本身的范围,安装nuget包在 nuget 包管理 UI 中引用它。

Code Snippet中的import节点是我们自己自定义的。 VS 没有检测和纠正它的工作。

因此,如果在插入片段时已经引用了包本身,则不会报错。如果没有引用,插入段会报错,需要手动导入包,不能自动安装。

代码段没有同时安装nuget包的任务。

综上所述,它的作用很简单,就是将自己的代码块快速输出到代码编辑器中。而如果你还想要的话,我觉得创建这样的VS Extension可以实现,但是会有点复杂。

作为建议,您可以尝试使用已包含代码片段的所需 nuget 包创建项目模板。参见