Answers:
try
{
// load the assembly or type
}
catch (Exception ex)
{
if (ex is System.Reflection.ReflectionTypeLoadException)
{
var typeLoadException = ex as ReflectionTypeLoadException;
var loaderExceptions = typeLoadException.LoaderExceptions;
}
}
try...catch
整个Installer.cs
班级都放了一个,什么也没有!我的代码在运行时不会抛出此错误,只有当我尝试执行安装程序时才会抛出此错误。有谁知道如何获取LoaderExceptions属性以获取更多信息?喜欢,浏览到文件夹并查看日志文件?
catch (ReflectionTypeLoadException ex) { var typeLoadException = ex as ReflectionTypeLoadException; var loaderExceptions = typeLoadException.LoaderExceptions; }
catch (ReflectionTypeLoadException ex) { var loaderExceptions = ex.LoaderExceptions; }
。另外,除非您预计转换会失败并且将检查是否为null,否则最好直接进行转换,这样它将立即失败,并且以后不会出现null引用异常:var typeLoadException = (ReflectionTypeLoadException)ex;
catch (ReflectionTypeLoadException ex)
{
foreach (var item in ex.LoaderExceptions)
{
MessageBox.Show(item.Message);
}
}
很抱歉,我恢复了旧线程,但想发布其他解决方案来拉出加载程序异常(使用实际的ReflectionTypeLoadException),以供其他任何人遇到。