我有一个MVC网站,我想从解决方案中从另一个项目加载DLL。这在控制台应用程序中很容易。问题是我想在app域中加载dll(因此无法使用项目或文件引用)。网站项目和DLL项目不相互信任。
我已经使用构建事件将DLL复制到bin / Debug或bin / Release文件夹中但是当我运行app时调用Assembly.GetExecutingAssembly.Location给出一些临时文件夹只有website.DLL另一个dll在另一个文件夹,文件夹之间没有明显的关系。
如何在asp.net MVC网站中找到dll的路径,在app域中加载,没有直接引用?
答案 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";