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