从ASP.Net项目中查找DLL的路径

时间:2016-09-18 04:30:33

标签: asp.net dll appdomain

我有一个MVC网站,我想从解决方案中从另一个项目加载DLL。这在控制台应用程序中很容易。问题是我想在app域中加载dll(因此无法使用项目或文件引用)。网站项目和DLL项目不相互信任。

我已经使用构建事件将DLL复制到bin / Debug或bin / Release文件夹中但是当我运行app时调用Assembly.GetExecutingAssembly.Location给出一些临时文件夹只有website.DLL另一个dll在另一个文件夹,文件夹之间没有明显的关系。

如何在asp.net MVC网站中找到dll的路径,在app域中加载,没有直接引用?

1 个答案:

答案 0 :(得分: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");

其中path类似于var path = "~/bin/Debug/YourDllName.dll";