怎么不能访问XML

eHuaTian 2018-09-15 09:11:36
方案的结构如下图

DAL为类库,被MVC项目App调用。Paramater.xml在DAL内。请问,DAL内的下列代码怎么读不到Paramater.xml?
string rootPath = string.Empty;
StringBuilder myMapInfos = new StringBuilder();
System.Xml.XmlDocument myXmlDocument = new System.Xml.XmlDocument();
string myCode = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
string myXmlPath = (System.IO.Path.GetDirectoryName(myCode) + "\\Paramater.xml").Remove(0,6).Replace("\\", "/");

XDocument doc = XDocument.Load(myXmlPath);//此句读不到XML文件
...全文
384 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
eHuaTian 2018-09-21
  • 打赏
  • 举报
回复
编译的时候,将Paramater.xml 编译至APP的bin目录下,所以算式中并未出现 Assets 字样。

此外,如果将Paramater.xml 打包至DLL内,如何读取?

请高人们来个代码
xuzuning 2018-09-21
  • 打赏
  • 举报
回复
你看一下 myXmlPath 的值不就知道了?

Paramater.xml 在 Assets 子目录下,但你的算式中并未出现 Assets 字样
eHuaTian 2018-09-20
  • 打赏
  • 举报
回复
大家说了这么多,能不能直接来份代码。
string myXmlPath = (System.IO.Path.GetDirectoryName(myCode) + "\\DAL.xml").Remove(0,6).Replace("\\", "/");返回的已经是DAL.xml的全路径了。
  • 打赏
  • 举报
回复
然后如果你是web项目的话,这个xml一般是放在web项目那一层的,不会放在dll里,dll里一般都会设置为内嵌资源
  • 打赏
  • 举报
回复
你得设置始终复制才行,或者你将这个xml设为内置资源,然后通过内嵌资源的方式读取
全栈极简 2018-09-17
  • 打赏
  • 举报
回复
默认访问的是项目bin/debug目录下,你可以在vs中设置xml文件始终复制到该目录下。
threenewbee 2018-09-15
  • 打赏
  • 举报
回复
string myCode = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
这个是编译出来的dll的路径,可不是网站的根路径。你调试下。

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧