C# 运行时Assembly.GetTypes上出现未知异常或错误

C# 运行时Assembly.GetTypes上出现未知异常或错误,c#,C#,我在项目中有以下代码,它在我的机器上运行良好,但当我在测试机器上运行它时,它在方法plugin.GetTypes()上崩溃。但程序集已正确加载 DirectoryInfo di = new DirectoryInfo(path); var files = di.GetFiles(dllName, SearchOption.TopDirectoryOnly); foreach (var file in files) { Assembly plugin = Assembly.Load

我在项目中有以下代码,它在我的机器上运行良好,但当我在测试机器上运行它时,它在方法plugin.GetTypes()上崩溃。但程序集已正确加载

DirectoryInfo di = new DirectoryInfo(path);
var files = di.GetFiles(dllName, SearchOption.TopDirectoryOnly);
foreach (var file in files) {
        Assembly plugin = Assembly.LoadFrom(file.FullName);
        try
        {
           foreach (Type pluginType in plugin.GetTypes()) {
            // dealing with pluginTypes...
           }
        }
        catch (Exception ex) {
           MessageBox.Show(ex.Message); 
        } }
问题是,我并没有一个选项,在那个里用VisualStudio调试代码。我简单地试了一下

try {
    var temp = plugin.GetTypes();
}
catch (Exception ex) {
    MessageBox.Show(ex.Message);
}

但它从不捕捉任何异常,它总是崩溃。在那台机器上,我使用相同的完整调试文件夹来运行应用程序

问题似乎在于一个引用实际上没有设置为CopyLocal。多亏了Hellix 88。

问题似乎在于一个引用实际上没有设置为CopyLocal。多亏了Hellix 88。

测试机上的事件查看器是否显示任何异常信息?听起来像是缺少DLL。检查是否已将任何引用(非默认)设置为CopyLocal是值得的。您还可以尝试为添加事件处理程序以尝试获取异常信息。为什么您不能对此进行调试?你试过远程调试吗?WinDbg?ProcDump?异常消息是什么?测试机上的事件查看器是否显示任何异常信息?听起来像是缺少DLL。检查是否已将任何引用(非默认)设置为CopyLocal是值得的。您还可以尝试为添加事件处理程序以尝试获取异常信息。为什么您不能对此进行调试?你试过远程调试吗?WinDbg?ProcDump?什么是异常消息?