我可以向我为 VS2022 编写的 Roslyn 分析器添加菜单按钮吗?

问题描述 投票:0回答:1

我正在为 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 分析器是否兼容其他扩展功能,但我必须尝试一下。有人以前尝试过同样的事情吗?

c# visual-studio roslyn visual-studio-extensions
1个回答
0
投票

命令不显示。

在 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|" />

测试结果:

enter image description here

参考文档:

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

© www.soinside.com 2019 - 2024. All rights reserved.