从 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 的路径的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC - 从控制器中查找 App_Data 文件夹的绝对路径

如何将文件路径从 asp.net matlab ne builder dll 工具传递给 Matlab 函数

如何将位于应用程序部分 (DLL) 中的部分视图呈现到主 asp.net core 2.2 项目中

如何从 ASP.NET 站点访问智能卡?

ASP.Net Ajax:如何从其DLL中向asp.net 2.0工具箱添加自定义控件

将 DLL 引用添加到 C# asp.net 项目后如何调用函数