2

可能重复:
Web 应用程序的 GetEntryAssembly

有一个类库,它通过调用GetEntryAssembly(). 但是,在 ASP.NET Web 应用程序中使用该类库,该函数返回 null。

是否可以从它调用的类库中获取 ASP.NET 应用程序可执行文件的位置?

GetCallingAssembly()不适合,因为该函数不是直接从 Web 应用程序调用的。

4

3 回答 3

1

查看HttpRuntime.BinDirectory -“获取当前应用程序的 /bin 目录的物理路径。”

这应该返回存储您的 Web 应用程序的所有 dll 的目录。

编辑:

好的,根据您的反馈,这可能有效:

var webApplicationType = typeof(MyWebApplicationClass);
var assemblyPathAndName = new System.Uri(webApplicationType.Assembly.CodeBase)).LocalPath;

您需要将“MyWebApplicationClass”替换为您想要装配路径和名称的 Web 项目中的任何类的名称。

于 2012-10-05T05:38:48.393 回答
0

我认为 Server.MapPath 可以解决您的问题,请查看此答案:- Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/ ”)。有什么区别?

另外,如果您需要查找程序集路径,则可以使用 string fullPath = System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location;

查看以下内容以获取更多信息:- 如何获取代码所在的程序集的路径?

于 2012-10-05T05:42:27.753 回答
0

尝试使用反射,如下所示。

string path = new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).LocalPath;

希望有帮助。

谢谢米林德

于 2012-10-05T05:47:46.840 回答