从另一个项目

时间:2015-08-05 13:38:34

标签: c#

我的解决方案中有两个项目,项目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”设置为“始终复制”,文件在项目B 。

3 个答案:

答案 0 :(得分:8)

在运行时,您的所有代码只有一个当前工作目录。您必须导航到解决方案目录,然后返回到另一个项目。

string solutiondir = Directory.GetParent(
    Directory.GetCurrentDirectory()).Parent.FullName;
// may need to go one directory higher for solution directory
return XDocument.Load(solutiondir + "\\" + ProjectBName + "\\Mock\\myDoc.html");

答案 1 :(得分:-1)

暂时更新应用程序当前目录:

    let notification = UILocalNotification()
    notification.fireDate = targetDate
    notification.timeZone = NSTimeZone.localTimeZone()
    notification.applicationIconBadgeNumber = 1
    notification.alertAction = "do a task"
    notification.alertBody = "New task is waiting for you!"
    notification.soundName = UILocalNotificationDefaultSoundName
    UIApplication.sharedApplication().scheduleLocalNotification(notification)

如果您的目录体系结构允许,您可以从ProjectA当前目录或.exe目录(即Application.StartupPath)推断出projectB目录。

答案 2 :(得分:-2)

如果您的文件在项目B中,那么您应该编写实际在B中访问它们的函数。现在项目A只需要处理简单的调用。