除启动项目外,获取其他路径

时间:2019-04-28 14:35:50

标签: c# .net visual-studio

我有一个名为Admin的启动项目。它在另一个名为Data的项目中调用一个方法。数据读取位于Data.dll所在文件夹中的XML。但是我得到的路径在Admin项目文件夹中查找错误。

我已经尝试过(来自Data项目)

Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"BookSource\Book.Xml");
Path.Combine(Environment.CurrentDirectory, @"BookSource\", "Book.Xml")

他们两个都看着 ..Admin \ Bin \ Debug \ BookSource \ Book.Xml 代替 ..Data \ Bin \ Debug \ BookSource \ Book.Xml

我认为这是因为管理员启动了解决方案。那么,除了开始的项目,我如何才能到达另一个项目?

1 个答案:

答案 0 :(得分:2)

确保将XML文件的属性标记为“始终复制”,然后仅使用文件名。当数据项目中的DLL复制到Admin项目的bin目录中时,此设置将使编译器知道它也应在目标位置复制XML文件。

在解决方案资源管理器中,右键单击您的XML文件并选择属性 Solution Explorer, xml file context sensitive menu, click Properties

现在在复制到输出目录下,选择始终复制

enter image description here

在我的Class1.cs示例中,我有以下代码,当从Program.cs调用时返回true:

public static bool LookForFile()
{
    return File.Exists("XMLFile1.xml");
}