Jalpesh Vadgama
Jalpesh Vadgama

Reputation: 14256

How to get bin folder in ASP.NET Core 1.0

With asp.net core 1.0 There are lots of functionality added. But there is not way to get Bin Folder path.

Can anyone please know how we can get the bin folder path for asp.net core 1.0 application.

Upvotes: 25

Views: 23955

Answers (5)

EricImhauser
EricImhauser

Reputation: 791

AppDomain.CurrentDomain.BaseDirectory;

Upvotes: 0

Rolf Kristensen
Rolf Kristensen

Reputation: 19867

Alternative way (corresponds to the AppDomain.BaseDirectory):

AppContext.BaseDirectory

Upvotes: 38

VirendraJ
VirendraJ

Reputation: 652

Well, the bin folder does exists but it is moved to artifacts folder next to the solution file. Since ASP.NET Core RC 1 compiles everything in memory, you will find empty bin folder. But if you set "Produce output on build" option to true (Right click Project file -> Properties and Build tab) then you will find the generated files in bin folder.

I don't think so there is any direct property available as to get the path of this but you can use the same solution pointed out by @Nikolay Kostov to get application path. And then using System.IO classes jump to bin folder.

Code updated to for ASP.NET Core as mentioned here.

http://www.talkingdotnet.com/get-application-wwwroot-path-aspnet-core-rc2/

public Startup(IHostingEnvironment env, IApplicationEnvironment appenv)
{
     string sAppPath = env.ContentRootPath;
     string sRootPath = Path.GetFullPath(Path.Combine(sAppPath, @"..\..\"));
     string sBinFolderPath = @"artifacts\bin\" + appenv.ApplicationName;
     string sBinPath = Path.Combine(sRootPath, sBinFolderPath);
}

Upvotes: 10

Shaun Luttin
Shaun Luttin

Reputation: 141622

This works to retrieve the assembly's directory, from which we can determine the bin location.

var location = System.Reflection.Assembly.GetEntryAssembly().Location;
var directory = System.IO.Path.GetDirectoryName(location);
System.Console.WriteLine(directory);

Output

C:\MyApplication\bin\Debug\netcoreapp1.0

Upvotes: 31

Nikolay Kostov
Nikolay Kostov

Reputation: 16983

You can't really get the /bin/ folder since it is not relevant to your project and the ASP.NET environment doesn't know what a /bin/ folder is.

And also there isn't exactly a /bin/ folder. You may want to read this article: http://docs.asp.net/en/latest/conceptual-overview/understanding-aspnet5-apps.html

But you can get the so called ApplicationBasePath which is the directory in which you application runs:

public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
     string baseDir = appEnv.ApplicationBasePath;
     // Other startup code
}

Upvotes: 0

Related Questions