首页 > 解决方案 > 获取启动项目以外的路径

问题描述

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

我试过(来自数据项目)

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 中查找

我认为是因为管理员启动了解决方案。那么我怎样才能获得另一个项目的路径而不是起始项目呢?

标签: c#.netvisual-studio

解决方案


确保您的 XML 文件在其属性中标记为“始终复制”,然后只使用文件名。当您的数据项目中的 DLL 被复制到您的管理项目的 bin 目录中时,此设置将让编译器知道它还应该在目标位置制作 XML 文件的副本。

在解决方案资源管理器中,右键单击您的 XML 文件并选择属性 解决方案资源管理器,xml 文件上下文相关菜单,单击属性

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

在此处输入图像描述

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

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

推荐阅读