我有一个 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 的临时缓存?
注意事项
- 此代码位于支持库中,可以从 ASP.NET 网站或其他控制台/Windows 应用调用。
最佳答案
你可以尝试(取自 How to: Get the Application Directory ):
Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
我设置了一个快速测试:
- 在 VS 开发服务器(编译站点、/bin 目录等)下运行的 Web 应用程序项目。
- 类库项目,由 WA 引用。
在 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\ Solution \ Project \bin
这是我所期望的。
关于c# - 我可以使用反射在 ASP.NET 中查找 bin/[Configuration] 文件夹而不是 asp 临时文件夹吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2427822/