开发者

Can I use reflection to find the bin/[Configuration] folder in ASP.NET instead of the asp temporary folder

I have an ASP.NET website and I want to find the /bin/[Configuration] folder to use an external tool (an exe file). When I use reflection to get calling assemblies location it returns something similar to:

C:\Windows\Microsoft.NET\Framework\\...\Temporary ASP.NET Files\a1388a5e\\...\my.dll

Since each dll has its own directory under the temp ASP.NET Files this fails for me.

How can I get the location of the compiled binary folder where the dll's and the .exe is (i.e. bin/) instead of asp.n开发者_如何学运维et's temporary cache?

Notes

  • This code is in a supporting library that can be called from ASP.NET websites or other console/windows apps.


You could try (taken from How to: Get the Application Directory):

Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);

I set up a quick test with:

  • A Web Application project running under the VS dev server (compiled site, /bin directory, etc).
  • A class library project, referenced by the WA.
  • In the web application I created a page that called the following method from the library project:

    using System.IO;
    using System.Reflection;
    
    namespace TestHelpers {
      public class ClassHelpers {
        public static string PathToBin() {
          return Path.GetDirectoryName(
                   Assembly.GetExecutingAssembly().GetName().CodeBase);
        }
      }
    }
    

This resulted in the following output on the page:

file:\C:\Users\ UserName \Documents\Visual Studio 2008\Websites\ Solution \ Project \bin

Which is what I'd expect.


Server.MapPath("~\bin")


Any reason not to just do

Server.MapPath("~/bin");

?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜