更改 TaggerProvider 的名称,代码无法运行

Change the name of TaggerProvider and the code fails to work

我克隆了 https://github.com/microsoft/VSSDK-Extensibility-Samples,项目 Intra-text_Adornment/C# 完美运行。

然后我将 ColorAdornmentTaggerProvider 的名称更改为 CCAdornmentTaggerProvider,然后 运行 项目。该扩展程序不再有效。

我的零钱是https://github.com/gqqnbig/VSSDK-Extensibility-Samples/commit/575d74300fc22b61d694f0c7f6a05e71c7fd79fe

我该如何解决?

How do I fix it?

当您将 ColorAdornmentTaggerProvider 的名称更改为 CCAdornmentTaggerProvider 时,您需要将所有颜色相关的 class 更改为 CC 相关的才能使扩展正常工作。

尝试在解决方案资源管理器中重命名 Class 名称并在收到此消息框时选择 OK 以将所有 Colorxxx 代码元素重命名为 CCxxx

重命名 class 名称后,结构应类似于:

如果存在编译错误,修复后就可以得到扩展了。

我找到了另一种方法来修复它。我必须从实验实例中卸载我的扩展程序,或者删除文件夹 %LOCALAPPDATA%\Microsoft\VisualStudio.0_5c91ae55Exp\Extensions.

我的猜测是,由于 ColorAdornmentTaggerProvider 具有 Export 属性,当 VS 安装扩展时,VS 会记住 class 名称、ContentTypeTagType 等。当我将 class 重命名为 CCAdornmentTaggerProvider 时,扩展没有重新安装,实验实例仍在寻找 ColorAdornmentTaggerProvider,但找不到它。