【发布时间】:2015-10-28 07:54:03
【问题描述】:
我的解决方案中有两个项目,项目 A 引用了项目 B。项目 A 调用项目 B 中的一个函数,该函数应加载项目 B 中的文档:
return XDocument.Load(@"Mock\myDoc.html");
问题是 XDocument.Load 正在使用来自项目 A 的路径(其中没有 Mock\myDoc.html)。
我尝试过使用
string curDir = Directory.GetCurrentDirectory();
var path = String.Format("file:///{0}/Mock/myDoc.html", curDir);
但这也给了我一条通往ProjectA\Mock\myDoc.html 的路径,而它应该是ProjectB\Mock\myDoc.html。我错过了什么?
编辑: 文件“myDoc.html”的“复制到输出”设置为“始终复制”,并且该文件在 Project B的输出文件夹中可用>。
【问题讨论】:
-
在项目B中,选择
Mock\myDoc.html=> 复制到输出目录stackoverflow.com/questions/4596508/… -
已设置为 CopyToOutput 目录。项目 B 的输出目录与项目 A 不同。
-
所有文件操作都将相对于进程的当前(工作)目录。这与您的项目所在的文件夹无关。要使用相对路径,您需要设置当前目录。它当前是项目的输出位置只是启动过程的默认值。
-
这绝对是有道理的理查德。如果我理解正确,我将不得不对路径进行硬编码?我想要一个也适用于我的同事的解决方案(例如,根文件夹名称可能不同)。我想我可以稍微操纵一下路径以使其正常工作。
标签: c#