PackageReference 或 ProjectReference 导致 Analyzer 中出现 TypeLoadException 错误

PackageReference or ProjectReference causes TypeLoadException error in Analyzer

我有一个分析器,它有一个名为 ClassMarker 的 PackageReference。

此引用包含类型 Marker1

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

然后,当我添加对 Marker1 类型的引用时,我开始在输出中出现运行时错误 window。

Exception thrown: 'System.TypeLoadException' in Microsoft.CodeAnalysis.dll Exception thrown:'System.Resources.MissingManifestResourceException' in mscorlib.dll

导致错误的特定行是:

var MarkerTypeName = typeof(Marker1).FullName;

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

我认为这意味着 Marker1 没有被 VSIX 扩展正确加载。

我尝试了几种不同的方法来确保它在 vsix 项目运行时包含在内(向 VSIX 项目添加了 PackageReference,Added a VSIXSourceItem using workaround)。

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

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