【问题标题】:How to get bin folder in ASP.NET Core 1.0如何在 ASP.NET Core 1.0 中获取 bin 文件夹
【发布时间】:2016-02-20 18:16:15
【问题描述】:

在 asp.net core 1.0 中添加了很多功能。但是没有办法获得 Bin 文件夹路径。

谁能知道我们如何获取 asp.net core 1.0 应用程序的 bin 文件夹路径。

【问题讨论】:

  • 为什么要一个 bin 文件夹?
  • @MuqeetKhan 原因之一是检索生成的 XML 文档文件。

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


【解决方案1】:

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

AppContext.BaseDirectory

【讨论】:

    【解决方案2】:

    这用于检索程序集的目录,我们可以从中确定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
    

    【讨论】:

    • 适用于我的本地环境,但它可以在 Azure API 服务上运行吗?
    【解决方案3】:

    好吧,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);
    }
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 它给了我不想要的带有 src 的文件夹
      • 没有/bin/ 文件夹。你可能想看这篇文章:docs.asp.net/en/latest/conceptual-overview/… 所以项目根目录是代码启动的地方
      • @JalpeshVadgama:这意味着您正在 IDE 中运行。
      • src 文件夹用于已发布的客户端脚本源。您认为 ASP.NET 将您的项目编译到的 DLL 放在哪里?如果您在构建期间将某些内容复制到输出,例如 SQL 脚本,则会将其复制到 bin 文件夹,并且要使用该 SQL 脚本,您需要知道该脚本文件所在位置的完整磁盘路径。
      • 现在是古代历史,但 IApplicationEnvironment 已被删除。 github.com/aspnet/Announcements/issues/171
      【解决方案5】:

      AppDomain.CurrentDomain.BaseDirectory;

      【讨论】:

        猜你喜欢
        • 2013-08-04
        • 2017-01-04
        • 2017-03-26
        • 2018-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多