如何在ASP.NET Core 1.0中获取bin文件夹

时间:2016-02-20 18:16:16

标签: asp.net asp.net-mvc asp.net-core-mvc asp.net-core-1.0

使用asp.net core 1.0添加了许多功能。但是没有办法获得Bin Folder路径。

任何人都可以知道如何获取asp.net core 1.0应用程序的bin文件夹路径。

5 个答案:

答案 0 :(得分:27)

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

答案 1 :(得分:22)

替代方式(对应于AppDomain.BaseDirectory):

AppContext.BaseDirectory

答案 2 :(得分:10)

嗯,bin文件夹确实存在,但它被移动到解决方案文件旁边的工件文件夹。由于ASP.NET Core RC 1编译内存中的所有内容,因此您将找到空bin文件夹。但是,如果将“生成输出构建”选项设置为true(右键单击“项目文件” - >“>属性和构建”选项卡),则可以在bin文件夹中找到生成的文件。

我认为没有任何直接属性可以获得此路径,但您可以使用@Nikolay Kostov指出的相同解决方案来获取应用程序路径。然后使用System.IO类跳转到bin文件夹。

代码更新为ASP.NET Core,如此处所述。

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

答案 3 :(得分:0)

您无法获得/bin/文件夹,因为它与您的项目无关,并且ASP.NET环境不知道/bin/文件夹是什么。

并且还没有/bin/个文件夹。您可能需要阅读这篇文章:http://docs.asp.net/en/latest/conceptual-overview/understanding-aspnet5-apps.html

但是你可以得到所谓的ApplicationBasePath,这是你运行应用程序的目录:

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

答案 4 :(得分:0)

AppDomain.CurrentDomain.BaseDirectory;