首页 > 解决方案 > PackageReference 或 ProjectReference 在 Analyzer 中导致 TypeLoadException 错误

问题描述

我有一个分析器,它有一个名为ClassMarker.

此引用包含一个类型Marker1

使用 VSIX 项目调试分析器,一切正常。

然后,当我添加对该Marker1类型的引用时,我开始在输出窗口中收到运行时错误。

抛出异常:Microsoft.CodeAnalysis.dll 中的“System.TypeLoadException”抛出异常:mscorlib.dll 中的“System.Resources.MissingManifestResourceException”

导致错误的特定行是:

var MarkerTypeName = typeof(Marker1).FullName;

我也对 ProjectReference 使用了相同的方法。

我认为这意味着Marker1VSIX 扩展没有正确加载它。

我尝试了几种不同的方法来确保在 vsix 项目运行时包含它(将 PackageReference 添加到 VSIX 项目,使用解决方法添加了 VSIXSourceItem)。

如何在运行时在 VSIX 实例中访问 PackageReference 或 ProjectReference(及其任何依赖项)?

标签: roslynvsix

解决方案


看起来这是 Visual Studio 缓存未被清除的问题。进入解决方案并删除 .vs 文件夹,清除符号缓存并从 Visual Studio 的调试实例中卸载所有扩展后,分析器开始工作。


推荐阅读