How to get bin folder in ASP.NET Core 1.0

邮差的信 提交于 2019-12-28 12:02:52

问题


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.


回答1:


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);
}



回答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:\MyApplication\bin\Debug\netcoreapp1.0



回答3:


Alternative way (corresponds to the AppDomain.BaseDirectory):

AppContext.BaseDirectory



回答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
}


来源:https://stackoverflow.com/questions/35527144/how-to-get-bin-folder-in-asp-net-core-1-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!