【发布时间】:2020-06-03 00:53:41
【问题描述】:
在我的 .Net Core 3.1 WPF 项目中尝试在我的DataSet 或DataTable 之一上使用放大镜时,我得到一个带有以下文本的System.IO.FileLoadException:
无法加载文件或程序集“DataSetVisualizer.DebuggeeSide,版本=16.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a”。一般异常(0x80131500)
堆栈跟踪:
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, RuntimeAssembly assemblyContext, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, AssemblyLoadContext assemblyLoadContext)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, StackCrawlMark& stackMark, AssemblyLoadContext assemblyLoadContext)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef, StackCrawlMark& stackMark, AssemblyLoadContext assemblyLoadContext)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at Microsoft.VisualStudio.DebuggerVisualizers.DebuggeeSide.Impl.ClrCustomVisualizerDebuggeeHost..ctor(String debuggeeSideVisualizerTypeName, String debuggeeSideVisualizerAssemblyName, String[] probePaths)
at Microsoft.VisualStudio.DebuggerVisualizers.DebuggeeSide.Impl.ClrCustomVisualizerDebuggeeHost.Create(String debuggeeSideVisualizerTypeName, String debuggeeSideVisualizerAssemblyName, String[] probePaths)
我将导致此问题的原因缩小到我最近实现的在运行时从子文件夹加载程序集的方法,这是我根据 Reza Aghaei 在上一个问题上的answer 编写的。
将其范围缩小到AppDomain.CurrentDomain.AssemblyResolve 事件的订阅,但还没有找到解决问题的方法。
AppDomain.CurrentDomain.AssemblyResolve += (obj, arg) =>
{
var name = $"{new AssemblyName(arg.Name).Name}.dll";
var assemblyFile = referenceFiles.Where(x => x.EndsWith(name))
.FirstOrDefault();
if (assemblyFile != null)
return Assembly.LoadFrom(assemblyFile);
throw new Exception($"'{name}' Not found");
};
我是否尝试在已加载的程序集或启动应用程序之一中查看DataSet 并不重要。
我想继续使用此方法在运行时加载程序集,但由于我正在使用很多 DataSets,因此能够使用 DataSet Visualizer 对我来说至关重要。
有什么建议吗?
编辑:调试期间数据集可视化器的使用:
【问题讨论】:
-
如何使用DataSet Visualizer?在运行时?
-
嗨。谢谢你快速的回复。我添加了一个图像作为我在调试期间尝试使用 DataSet Visualizer 的方式。我做了一个空的示例项目,但注意到你的代码来自我的另一个问题。如果我将
throw new Exception($"'{name}' Not found");更改为return null;,它似乎可以工作,尽管我担心这可能是该方法的初始使用问题。
标签: c# wpf visual-studio .net-core reflection