如何将此程序集加载到我的AppDomain中?

时间:2015-10-05 05:54:41

标签: c# dll plugins .net-assembly appdomain

我已经搜出了这个问题,但是当文件清楚存在并且可以使用File.ReadAllBytes

这是我目前的代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我试图从插件文件夹中加载所有.dll文件,并加载一堆属性类型和函数。

使用Assembly.LoadFrom(file.FullName)时,加载属性类型和函数的工作文件。但是,pluginDomain.Load(assemblyBytes)会导致以下异常:

<script>
$(function () {
    $("#id_part_pay").next('span').hide();
    $("#id_part_pay").keyup(function () {
        var input = $(this).val();
        var v = input % 10;
        var span = $(this).next('span');
        if (v !== 0) {
            span.text("Enter Percentage in multiple of 10").show();
            return;
        }
        if (input < 20 || input > 100) {
            span.text("Percentage should be between 20 - 100").show();
            return;
        }
        span.text('').hide(); //Clear Text and hide
    });
});
</script>

它肯定会找到指定的文件,因为File.ReadAllBytes可以正常工作,因为异常会显示我尝试加载的程序集的全名。因此我得出结论,它无法加载依赖。

所有依赖项都已加载到CurrentDomain中。虽然,即使我将这些依赖项放在.dll旁边(这在所述.dll的构建过程中发生),也会产生同样的异常。

当文件明确存在时,为什么会出现此异常?

1 个答案:

答案 0 :(得分:1)

您应该在当前域的AssemblyResolve事件处理程序中加载程序集,如解释here