如何在我的Web应用程序的bin目录之外加载程序集

adv*_*veb 2 c# asp.net

我想从bin文件夹以外的位置加载我的程序集.

我怎么能做到这一点?

谢谢

Sky*_*ers 6

注意:

我之前的回答是不正确的.山姆霍尔德的假设听起来似乎有道理,所以我写了一些测试来证实.

考虑一下确认.

要进行测试,请添加对项目或dll的引用,并将"Copy Local"设置为false.确保你'显示所有文件'并删除bin目录,否则你将有一个挥之不去的dll.

Global.asax中

namespace WebApplication1
{
    public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {
            AppDomain currentDomain = AppDomain.CurrentDomain;
            currentDomain.AssemblyResolve += new ResolveEventHandler(currentDomain_AssemblyResolve);
        }

        System.Reflection.Assembly currentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {
            if (args.Name == "ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null")
            {
                String assemblyPath = @"C:\Projects\StackOverflowAnswers\WebApplication1\ClassLibrary1\bin\Debug\ClassLibrary1.dll";
                Assembly assembly = Assembly.LoadFrom(assemblyPath);
                return assembly;
            }
            return null;

        }
.....
Run Code Online (Sandbox Code Playgroud)

OP应该给我一个upvote,但Sam应该得到支票.