c# - 我可以使用反射在 ASP.NET 中查找 bin/[Configuration] 文件夹而不是 asp 临时文件夹吗

标签 c# asp.net reflection

我有一个 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/

相关文章:

c# - 如何将 SQL Server 过程变量设置为从 C# ASP.NET MVC 程序输入的数据?

c# - 如何检查 RowDataBound 中的组合 RowState 'Altering | Edit'?

asp.net - StackOverFlow 上的页面查看计数器

java - 如何在 Class<?> 的对象上执行方法

c# - 如何从未引用的程序集中获取类型?

java - 反射(reflection)有用吗?

c# - 禁用查询的 EF 对象图

c# - .NET 中未显示 Delphi COM 对象

C# 获取设置访问器

c# - 如何使用正则表达式仅选择状态