随着asp.net core 1.0的发布,添加了许多功能。但是没有办法获取Bin文件夹路径。
请问有没有人知道如何获取asp.net core 1.0应用程序的bin文件夹路径?
随着asp.net core 1.0的发布,添加了许多功能。但是没有办法获取Bin文件夹路径。
请问有没有人知道如何获取asp.net core 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:\MyApplication\bin\Debug\netcoreapp1.0
嗯,bin文件夹确实存在,但它被移动到解决方案文件旁边的artifacts文件夹中。由于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);
}
AppDomain.CurrentDomain.BaseDirectory;
您实际上不能获取/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
}
/bin/
文件夹。你可能想阅读这篇文章:http://docs.asp.net/en/latest/conceptual-overview/understanding-aspnet5-apps.html,因此项目根目录是代码启动的地方。 - Nikolay Kostovsrc
文件夹用于发布客户端脚本源代码。你认为ASP.NET把项目编译生成的DLL放在哪里?如果你在构建过程中将某些内容复制到输出目录,比如SQL脚本,它会被复制到bin
文件夹中。要使用该SQL脚本,你需要知道该脚本文件所在的完整磁盘路径。 - ProfK