【问题标题】:C# File Location ConnundrumC# 文件位置难题
【发布时间】:2010-02-19 19:56:27
【问题描述】:

我在 WCF 应用程序中有一个描述依赖关系的 xml 文件。它在服务外观构造函数运行时加载,并且在单独测试应用程序时效果很好。我们单独的 Web 测试应用程序的设置方式是不同 (mvc) 项目中的端点 - 因此相对路径与我们需要加载的 xml 文件不同。问题是从两个项目中加载该文件的最佳方法是什么(这样当您单独运行第一个项目时它会加载该文件,但是当该 dll 在第二个项目中加载时它仍然可以找到 xml 文件) ?

【问题讨论】:

    标签: c# asp.net asp.net-mvc wcf


    【解决方案1】:

    您可以将其复制到输出目录。您可以在 Visual Studio 中通过右键单击文件、选择属性并将“复制到输出目录”更改为“始终复制”来执行此操作。

    在运行时,您将能够在两个项目的当前目录中找到该文件。

    【讨论】:

      【解决方案2】:

      试试Server.MapPath

      示例:

      Server.MapPath(@"~\App_Data\menudata.xml")

      然后您可以将文件放置在相对于您的网站/网络服务的根目录的任何位置。

      【讨论】:

        【解决方案3】:

        我尝试了“复制到输出”,但没有成功 - 由于某种原因,我的根路径不在输出路径所在的位置(我之前认为)......所以要从其他开发人员设置这个项目中抽象出任何头痛我这样做了:

        var _assembly = System.Reflection.Assembly.GetExecutingAssembly();
        XDocument xdoc = XDocument.Load(new StreamReader(_assembly.GetManifestResourceStream("TheNamespace.Api.TheFile.xml")));
        

        这当然要求文件是嵌入式资源。

        【讨论】:

          猜你喜欢
          • 2018-08-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-20
          • 2018-04-13
          • 1970-01-01
          • 2011-09-01
          相关资源
          最近更新 更多