微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Visual Studio2017 中加载动态生成的 XML 文件的最佳选择是什么

如何解决在 Visual Studio2017 中加载动态生成的 XML 文件的最佳选择是什么

我有一个读取 xml 文件的类库项目。 xml 文件将不时动态更新。因此,我没有将 Visual Studio 中的 xml 文件设置为 Build Action = Embedded Resource,因为它每次都需要编译。

现在,如果我通过获取相对路径将其作为外部源读取。这是我用来读取文件代码

public static string GetDatabaseXMLPath()
{
    string LPath = string.Empty;
    try
    {
        string Location = AppDomain.CurrentDomain.BaseDirectory;

        int index;
        int len;

        index = Location.IndexOf("MyProject");
        len = Location.Length;

        if (index > 0)
        {
            LPath = Location.Remove(index,len - index);
            LPath = LPath + "MyProject\\DatabaseInfoFile\\Database.xml";
        }
        else
        {
            LPath = Location;
        }
        Console.WriteLine(LPath);
    }

    catch (Exception e)
    {
        Console.WriteLine("Error in GetDatabaseXMLPath " + e);
    }

    return LPath;
}

上面的代码工作正常,我可以通过同一解决方案中的控制台测试项目读取它。 问题是当我用这个 Dll 创建一个 Nuget 包并在另一个项目中使用它时,比如 Project-2。 另一个 Project-2 显示错误,就像在其自己的 bin 目录中而不是在 Dll 的目录中查找文件一样。

System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\My Projects\Project-2\Project-2\bin\Debug\'.

到目前为止,它仅在我在 Dll 中使用绝对路径时才有效。

const string FILENAME = @"\FileName\Database.xml";

并将其读作:

XDocument doc = XDocument.Load(FILENAME);

dll 将放置在服务器(dev/uat/prod)上,所以请告知是否有更好的解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。