【问题标题】:How to Load a file from another project of same solution如何从相同解决方案的另一个项目加载文件
【发布时间】:2018-05-02 14:04:04
【问题描述】:

我的解决方案中有两个项目,ProjectA 和 ProjectB。 ProjectA 包含名为“Config”的文件夹,其中包含myfile.xml。 我想从 WebAPI 的 ProjectB 访问这个文件。

我尝试了以下代码:

string rootPath = System.Web.Hosting.HostingEnvironment.MapPath("~\\Config\\myfile.xml");

但它无法检索 ProjectA 而是创建了以下路径:

D:\Projects\DGS.DGSAPI.UI\ProjectB\Config\AffiliateInformationCollection.xml

而不是

D:\Projects\DGS.DGSAPI.UI\ProjectA\Config\AffiliateInformationCollection.xml

我做错了什么?

【问题讨论】:

  • 我相信您必须在 ProjectB 中拥有 myfile.xml 的副本。由于您的 ProjectB 将作为 Web 服务器上的独立实例运行,因此它只能在其自己的域内访问。换句话说,除非将 ProjectA 作为依赖项添加到 ProjectB 中,否则 ProjectB 不会知道 ProjectA。

标签: c# directory project mappath


【解决方案1】:

因为您正在运行的项目是 B,所以它的根目录是您的 ProjectB 文件夹: 字符串 rootPath = System.Web.Hosting.HostingEnvironment.MapPath("~"); 确实返回 ProjectB 的根文件夹而不是您的解决方案。

您可以: 让 myfile.xml 成为 projectA 的资源,以便它可以访问并包含在 dll 中。

将您的 ProjectA 指向 web.config 并在那里阅读。

使用虚拟文件夹。

如果你只需要这个文件,我会使用资源,如果你需要文件夹,我会使用 web.config 键。

【讨论】:

    猜你喜欢
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 2016-11-08
    • 1970-01-01
    • 2014-04-14
    相关资源
    最近更新 更多