我有一个ASP.NET网站,我想找到/ bin / [Configuration]文件夹以使用外部工具(exe文件)。当我使用反射获取调用程序集位置时,它返回类似于:
的内容 C:\Windows\Microsoft.NET\Framework\\...\Temporary ASP.NET Files\a1388a5e\\...\my.dll
由于每个dll在临时ASP.NET文件下都有自己的目录,因此对我来说失败了。
如何获取已编译的二进制文件夹的位置,其中dll和.exe是(即bin /)而不是asp.net的临时缓存?
备注
答案 0 :(得分:13)
您可以尝试(取自How to: Get the Application Directory):
Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
我设置了一个快速测试:
在Web应用程序中,我创建了一个从库项目调用以下方法的页面:
using System.IO;
using System.Reflection;
namespace TestHelpers {
public class ClassHelpers {
public static string PathToBin() {
return Path.GetDirectoryName(
Assembly.GetExecutingAssembly().GetName().CodeBase);
}
}
}
这导致页面上显示以下输出:
file:\ C:\ Users \ UserName \ Documents \ Visual Studio 2008 \ Websites \ 解决方案 \ 项目 \ bin
这是我所期待的。
答案 1 :(得分:4)
使用Server.Mappath( “〜\ BIN”)
答案 2 :(得分:0)
任何不做的理由
Server.MapPath("~/bin");