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.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Alternative way (corresponds to the AppDomain.BaseDirectory):

AppContext.BaseDirectory

Method 2

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:MyApplicationbinDebugnetcoreapp1.0

Method 3

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 = @"artifactsbin" + appenv.ApplicationName;
     string sBinPath = Path.Combine(sRootPath, sBinFolderPath);
}

Method 4

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
}

Method 5

AppDomain.CurrentDomain.BaseDirectory;


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x