【问题标题】:how to read a file from a different project?如何从不同的项目中读取文件?
【发布时间】:2018-11-16 19:47:55
【问题描述】:

如何从不同的项目中读取文件?

我有一个解决方案:

Solution1
-MyProject
-MyProject.Artifacts
----Message.XML
-MyProject.Tests

我正在尝试从MyProject.Tests 读取Message.XML 的内容。

如何从MyProject.Tests读取Message.XML的内容?

不幸的是,我现在正在做这样的事情,但它不是很漂亮:

        var currentDir = Directory.GetCurrentDirectory();
        var parentDir = Directory.GetParent(Directory.GetParent(currentDir).FullName).FullName;
        var parentParentDir = Directory.GetParent(Directory.GetParent(Directory.GetParent(currentDir).FullName).FullName).FullName;
        var parentParentParentDir = Directory.GetParent(Directory.GetParent(Directory.GetParent(Directory.GetParent(currentDir).FullName).FullName).FullName).FullName;

【问题讨论】:

  • 它是什么样的应用程序? Web、控制台或 WPF ...?我认为您可以自己定义 XML 输出文件夹。因此,您可以参考:stackoverflow.com/questions/6041332/…
  • 它是一个天蓝色的功能

标签: c# .net visual-studio visual-studio-2017


【解决方案1】:

您可以使用读取文件内容的方式在 app.config / web.config 的应用设置中存储文件路径。

这样,如果您需要以不同的方式部署软件,您就有了灵活性

【讨论】:

  • 那么我需要维护两组配置文件,一组在我的常规项目中,另一组在我的测试项目中
  • 或者我们进行配置转换,这样当您运行测试时,您会得到一组值并运行生产时,您会得到不同的设置
【解决方案2】:

如果你的路径是固定的,你可以写成“c:\projects\solution ... Message.xml”这样的路径

如果你想要一个相对路径,最简单的方法是这样的:

var DI = new DirectoryInfo("..\\..\\..\\..\\Your Folder\\Message.XML");

此路径从 CurrentDirectory 开始,向上走四个文件夹,向下走一个文件夹并找到文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多