2016-09-18 116 views
1

我有一个MVC网站,我想从该解决方案中的另一个项目加载DLL。这在控制台应用程序中很容易。问题是我想将DLL加载到应用程序域中(所以不能使用项目或文件引用)。网站项目和DLL项目不相信你看到的其他人。从ASP.Net项目找到DLL的路径

我已经使用生成事件来将DLL复制到bin/Debug或bin/Release文件夹,但是当我运行应用程序时调用Assembly.GetExecutingAssembly.Location给出一些临时文件夹,只有website.DLL其他dll另一个文件夹,文件夹之间没有明显的关系。

如何在asp.net MVC网站中找到将dll加载到应用程序域并且没有直接引用的路径?

回答

2

您可以使用

System.Web.HttpContext.Current.Server.MapPath(path); 

或使用HostingEnvironment.MapPath

System.Web.Hosting.HostingEnvironment.MapPath(path); 

或者(如果您使用ASP.NET核心)

// DI 
IHostingEnvironment _appEnvironment; 
Path.Combine(_appEnvironment.ApplicationBasePath, "bin", "Debug", "YourDllName.dll"); 

其中,路径是一样的东西var path = "~/bin/Debug/YourDllName.dll";