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



使用 asp.net 核心 1.0 添加了很多功能。但是没有办法获取垃圾箱文件夹路径。

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

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

AppContext.BaseDirectory

这适用于检索程序集的目录,我们可以从中确定bin位置。

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

输出

C:MyApplicationbinDebugnetcoreapp1.0

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

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

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

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

您无法真正获取/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
}

AppDomain.CurrentDomain.BaseDirectory;

最新更新