VS2026最新ide插件VisualStudio.Extensibility进程外 OOP 新模型

微软目前最新、最简、抛弃旧式 VSCT / 大量 GUID/AsyncPackage 的插件模型:**VisualStudio.Extensibility(进程外 OOP 新模型)**Microsoft Learn

一、目标工程类型(新建项目名字)

项目模板名称:Visual Studio Extension(.NET)

分类:扩展 → Visual Studio Extension (.NET)

  • 框架:.NET8/.NET9不再捆死.NET Framework4.72)Microsoft Learn
  • 打包:自动生成 VSIX,不用手动配置 source.extension.vsixmanifest 繁琐 XMLMicrosoft Developer Blogs
  • 彻底废弃:Menus.ctmenu、ProvideMenuResource、到处散落的 GUID、AsyncPackage 类(就是你吐槽的一堆垃圾配置全删)Microsoft Learn

二、三大 VS 插件模型极简对比(帮你直接避坑旧式 VSSDK)

表格

模型 项目类型 痛点(你现在踩坑的就是老式 VSSDK) 菜单配置方式
新:VisualStudio.Extensibility(首选最简) Visual Studio Extension(.NET) 无 Package、无 vsct、不用到处改 GUID、插件崩 VS 不崩、安装不用重启 VS 纯 C# 特性标记写菜单,不用 XML 资源文件Microsoft Learn
中:Community Toolkit Empty VSIX Project(Community) 简化 VSSDK,但仍保留 vsix + 少量特性,还要 Package 特性简化,但仍依赖 VSCT 资源
老:传统 VSSDK (你当前在用) VSIX 项目 一堆 Guid、ctmenu、Package 注册特性、改 GUID 要改 N 处、插件异常直接搞崩 VS 必须 vsct+ProvideMenuResource + 多处 GUID 硬编码

三、新模型核心优点(完美解决你吐槽的痛点)

  1. 菜单不用 VSCT 文件!不用<ProvideMenuResource> 加菜单栏 / 按钮:直接 C# 代码[Command]特性声明,一个类搞定,不用 XML 资源、不用到处注册 GUIDMicrosoft Learn

vb

复制代码
' VB.NET新版极简菜单,无任何xml、无零散GUID
<Command(PackageGuidString,"Cmd01","按钮名称")>
Public Class MyCmd
    Implements ICommand
    Public Async Function ExecuteAsync(ctx As IClientContext,ct As CancellationToken) As Task Implements ICommand.ExecuteAsync
        '按钮点击逻辑
    End Function
End Class
'所有GUID统一放全局Module一处,全项目引用
  1. 进程外隔离运行:插件独立.NET8 进程,插件崩溃 VS 完全不受影响,再也不会因为插件炸 IDE
  2. 热加载:安装插件不用重启 VS,改代码 F5 直接生效Microsoft Learn
  3. csproj 极简(SDK 风格),没有旧式臃肿配置,不用一堆 Package 注册标签

四、次优选:Community Toolkit 轻量化 VSIX

如果部分老功能新模型还没完善,选:Empty VSIX Project (Community)

  • 砍掉大半 VSSDK 冗余特性,但仍基于旧式 VSIX,还是需要 vsct 菜单文件,只是少一半配置,不如上面新模型彻底省事

五、你迁移建议

  1. 新项目直接建:Visual Studio Extension(.NET)(新 OOP 模型),完全告别你现在的 ctmenu、多位置 GUID、AsyncPackage 一堆注册标签;
  2. 现有旧 VSSDK 插件想轻量化:Community Toolkit;
  3. 彻底放弃原生 VSSDK 旧式 VSIX 模板(你现在正在写的这套)
相关推荐
辰辉创聚2 小时前
重组蛋白聚集的形成机制及其对蛋白活性的影响
opencv·时序数据库·visual studio·重组蛋白·蛋白聚集·蛋白活性·蛋白聚集体
2501_930707782 小时前
使用C#代码为新创建的 Word 文档创建目录
c#·word
czhc11400756634 小时前
同一个数,两把尺子:六组“看着一样、其实不一样“
c#
花北城4 小时前
【C#底层库】access_token授权鉴权验证
c#·鉴权·token·授权
rick9775 小时前
C# 动态代理与 DispatchProxy:从原理到实战的完整指南
c#
tang_04275 小时前
【Hi.Ltd 专题】第8期:Managements 插件、单例与服务定位
经验分享·c#·hi.ltd系列
AI编码进化论5 小时前
云IDE介绍:环境模板化、Agent上云,云IDE该怎么选
开发语言·ide·人工智能·团队开发·ai编程
曹牧16 小时前
C#:24小时制时间
c#
唐青枫21 小时前
别急着拆服务:C#.NET 微服务架构从边界设计到实战
c#·.net
我要见SA姐121 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
ide·vscode·python·自动化·编辑器