gpt4 book ai didi

c# - 从 bin 以外的文件夹加载程序集

转载 作者:行者123 更新时间:2023-12-02 05:28:44 28 4
gpt4 key购买 nike

我创建了一个mvc 3项目,命名空间是[POC.MVC.PluginHost]。 Controller 命名空间是 [POC.MVC.PluginHost.Controllers]。我创建了一个类库项目并将其 namespace 更改为 [POC.MVC.PluginHost.Controllers]。

类库项目代码:

namespace POC.MVC.PluginHost.Controllers
{
public class BasicExampleController : Controller
{
public ActionResult Index()
{
// Add action logic here
throw new NotImplementedException();
}
public ActionResult Display()
{

return Content("");

}
}
}

我编译它并复制到 mvc 项目的 bin 目录,当我浏览 http://localhost:xxxx/BasicExample/display 它工作正常,但我想复制这个类的编译 dll库在其他文件夹中,如 [plugin] 但它不起作用,只有当我将它复制到我的 mvc 项目的 bin 文件夹时它才起作用。有办法解决这个问题吗?

编辑......................................................

我在我的 web.config 中测试:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Plugin" />
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
</dependentAssembly>
</assemblyBinding>

但这不起作用!!!!

我对此进行了测试,但这仍然不起作用.....

    static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string assembliesDir = "Plugin";

string aa = System.IO.Path.Combine(assembliesDir, args.Name + ".dll");
aa = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, aa);
Assembly asm = Assembly.LoadFrom(aa);
return asm;
}

protected void Application_Start()
{

RegisterRoutes(RouteTable.Routes);
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
AppDomain.CurrentDomain.Load("SamplePlg");

System.Web.Hosting.HostingEnvironment.RegisterVirtualPathProvider(new AssemblyResourceProvider());

}

最佳答案

另见

C#: Custom assembly directory

您可以向您的 app.config 添加额外的搜索路径,它会在其中查找以加载程序集。例如

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib" />
</assemblyBinding>
</runtime>

关于c# - 从 bin 以外的文件夹加载程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12692216/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com