C#文件位置难题

时间:2010-02-19 19:56:28

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

尝试Server.MapPath

示例:

Server.MapPath(@“〜\ App_Data \ menudata.xml”)

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

答案 2 :(得分:0)

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

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

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