我正在为 Visual Studio 2022 编写 Roslyn 分析器。我需要添加一个工具菜单按钮来实现一些额外的功能。但是,我似乎无法将这两个项目联系起来。当我运行该项目并打开另一个 Visual Studio 窗口时,我看不到该按钮。
我的解决方案结构由 5 个项目组成:
CodeAnalysis
、CodeAnalysis.CodeFixes
、CodeAnalysis.Test
、CodeAnalysis.Package
和 CodeAnalysis.Vsix
我尝试在此解决方案中创建一个名为
CodeAnalysis.Commands.
的新 VSIX 模板项目,然后我向该项目添加了一个 Command
项。我通过添加行 CodeAnalysis.Vsix/source.extension.vsixmanifest
将该项目的名称添加到
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="CodeAnalysis.Commands" Path="|CodeAnalysis.Commands;PkgdefProjectOutputGroup|" />
作为资产
我重建了项目并在弹出的 Visual Studio 窗口中运行它。该命令不显示。
我什至不确定 Roslyn 分析器是否兼容其他扩展功能,但我必须尝试一下。有人以前尝试过同样的事情吗?
命令不显示。
在 Visual Studio 实验实例中运行 VSIX 项目时,您是否看到任何错误消息?
我在 VS2022 17.11 中创建了一个演示扩展,发现命令确实出现了。请检查以下步骤。
1.新建一个VSIX模板项目并命名为
CodeAnalysisCommands
。请删除项目名称中的点(“.”)。
2.将您在
<Asset>
文件中添加为资产的 .vsixmanifest
替换为以下内容:
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
测试结果:
参考文档:
https://learn.microsoft.com/en-us/visualstudio/extensibility/extensibility-hello-world?view=vs-2022
https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/identifier-names