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

我怎样才能做到这一点?

谢谢

最佳答案

注意:

我以前的答案不正确。 Sam Holder的假设听起来很合理,所以我写了一些测试来确认。

认为已确认。

要进行测试,请添加对项目或dll的引用,并将“复制本地”设置为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;

        }
.....


OP也许应该给我赞成票,但Sam应该得到支票。

08-26 19:14