如何解决在 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 举报,一经查实,本站将立刻删除。