【问题标题】:How to access file path for XML file in an assembly folder?如何访问程序集文件夹中 XML 文件的文件路径?
【发布时间】:2011-09-10 21:57:42
【问题描述】:

在我的 .NET 程序集中,我需要访问一个 XML 文件,该文件位于我的类程序集项目的“导入”文件夹中。

我该怎么做?几乎像 ASP.NET Server.MapPath() 但用于程序集。我不想要获取当前正在执行的程序集的反射方法,因为它指向 GAC 文件夹。我要当前项目的文件夹。

我在部署时也需要它来工作。基本上它是使用 EF Code First 数据库初始化程序导入 XML 文件并插入种子数据。这是在 Global.asax.cs 中引导的。我需要它在开发和实时目标上工作。

【问题讨论】:

  • 没有当前项目的程序集文件夹。那么,你真正想要什么?
  • @Daniel,好的,如果我的项目中有一个 XML,我需要读取 XML 文件,XML 文件在哪里以及如何访问它?
  • 您是否已将文件作为嵌入式资源导入程序集?如果是,请说出来;否则无法访问。
  • @abatishchev - 我喜欢在程序集中嵌入 XML 文件的声音,但对于一次性填充数据库来说,这是最好的选择吗?

标签: c# .net


【解决方案1】:

将路径和/或文件名添加到 app/web.config 文件并使用核心 System.Configuration 程序集中的功能来检索值。

【讨论】:

    【解决方案2】:

    如何使用:Environment.CurrentDirectory
    查看this question 了解更多信息。

    更新:
    对于asp.net,可以使用Request.PhysicalApplicationPath

    【讨论】:

    • 问题是我在我的数据服务程序集中使用 EF 代码优先,因此无法访问该级别的 HttpContext。
    【解决方案3】:
    1. Visual Studio -> 项目(例如 XML 文件)-> 属性 -> 构建操作 -> 嵌入式资源
    2. Assembly.GetExecutingAssembly().GetManifestResourceStream(path)

    【讨论】:

      【解决方案4】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-05
        • 1970-01-01
        • 2012-01-27
        • 2020-01-28
        • 1970-01-01
        • 2019-12-28
        相关资源
        最近更新 更多