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

Posted

技术标签:

【中文标题】从 ASP.Net 项目中查找 DLL 的路径【英文标题】:Finding path to DLL from ASP.Net project 【发布时间】:2016-09-18 04:30:33 【问题描述】:

我有一个 MVC 网站,我想从解决方案中的另一个项目加载 DLL。这在控制台应用程序中很容易。问题是我想在应用程序域中加载 dll(所以不能使用项目或文件引用)。你看到的网站项目和 DLL 项目互不信任。

我使用构建事件将 DLL 复制到 bin/Debug 或 bin/Release 文件夹中,但是当我运行应用程序 Calls to Assembly.GetExecutingAssembly.Location 提供了一些临时文件夹,其中只有 website.DLL 另一个 dll 在另一个文件夹,文件夹之间没有明显的关系。

如何在 asp.net MVC 站点中找到 dll 的路径,以将其加载到应用程序域中,而无需直接引用?

【问题讨论】:

【参考方案1】:

你可以使用

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";

【讨论】:

以上是关于从 ASP.Net 项目中查找 DLL 的路径的主要内容,如果未能解决你的问题,请参考以下文章