roslyn - PackageReference 或 ProjectReference 在 Analyzer 中导致 TypeLoadException 错误
问题描述
我有一个分析器,它有一个名为ClassMarker
.
此引用包含一个类型Marker1
。
使用 VSIX 项目调试分析器,一切正常。
然后,当我添加对该Marker1
类型的引用时,我开始在输出窗口中收到运行时错误。
抛出异常:Microsoft.CodeAnalysis.dll 中的“System.TypeLoadException”抛出异常:mscorlib.dll 中的“System.Resources.MissingManifestResourceException”
导致错误的特定行是:
var MarkerTypeName = typeof(Marker1).FullName;
我也对 ProjectReference 使用了相同的方法。
我认为这意味着Marker1
VSIX 扩展没有正确加载它。
我尝试了几种不同的方法来确保在 vsix 项目运行时包含它(将 PackageReference 添加到 VSIX 项目,使用解决方法添加了 VSIXSourceItem)。
如何在运行时在 VSIX 实例中访问 PackageReference 或 ProjectReference(及其任何依赖项)?
解决方案
看起来这是 Visual Studio 缓存未被清除的问题。进入解决方案并删除 .vs 文件夹,清除符号缓存并从 Visual Studio 的调试实例中卸载所有扩展后,分析器开始工作。
推荐阅读
- dependency-injection - 带有 Azure Functions 的温莎城堡 (v3)
- r - R中是否有任何捷径可以根据以下数据找到最小最大值?
- filter - Power Automate Flows - 使用多个 AND 时,筛选器查询无法按预期工作
- google-oauth - 是什么导致出现两个不同的 google oauth 权限提示?
- html - Vue.js- 在表格上渲染价格比较
- html - 引导多个输入两行
- excel-formula - 如何使 Excel 公式根据条件返回是或否,空白时什么也不返回
- c# - 我的 For 语句多次显示我的 HTML 页面而不是一次
- c# - 从 Postman 调用时未执行 API 方法
- r - 将过滤后的 DT::datatable 保存到新的数据框 R 闪亮