C# 在WPF中解析本地XML文档(在调试中工作,发布后失败)
我正在构建一个WPF应用程序。在该应用程序中,我使用XmlReader类解析几个本地XML文件。我编写的代码在调试过程中工作得很好,但在发布并安装应用程序后失败 我将XML文档作为构建操作中的内容,并将其设置为“始终复制”。我可以确认XML文档已部署到我的构建中,并且在安装后仍在应用程序文件夹中 更让我困惑的是,在这个应用程序中,我使用相同的XmlReader代码来解析来自外部网站的RSS提要,没有任何问题。它只在本地XML文档上失败 有人知道为什么我的XmlReader在应用程序发布后无法解析本地XML文档吗 以下是我的XmlReader代码的一小段,供参考:C# 在WPF中解析本地XML文档(在调试中工作,发布后失败),c#,wpf,xml,C#,Wpf,Xml,我正在构建一个WPF应用程序。在该应用程序中,我使用XmlReader类解析几个本地XML文件。我编写的代码在调试过程中工作得很好,但在发布并安装应用程序后失败 我将XML文档作为构建操作中的内容,并将其设置为“始终复制”。我可以确认XML文档已部署到我的构建中,并且在安装后仍在应用程序文件夹中 更让我困惑的是,在这个应用程序中,我使用相同的XmlReader代码来解析来自外部网站的RSS提要,没有任何问题。它只在本地XML文档上失败 有人知道为什么我的XmlReader在应用程序发布后无法解析
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
settings.IgnoreProcessingInstructions = true;
settings.IgnoreWhitespace = true;
try
{
settingsReader = XmlReader.Create("Resources/data/TriviaQuestions.xml", settings);
nodeNum = 0;
while (settingsReader.Read())
{
switch (settingsReader.NodeType)
{
case XmlNodeType.Element:
if (settingsReader.HasAttributes)
{
for (int i = 0; i < settingsReader.AttributeCount; i++)
{
settingsReader.MoveToAttribute(i);
_feeds[nodeNum] = settingsReader.Value.ToString();
}
settingsReader.MoveToContent(); // Moves the reader back to the element node.
}
break;
case XmlNodeType.Text:
_questions[nodeNum] = settingsReader.Value;
nodeNum++;
break;
}
}
settingsReader.Close();
}
catch
{
}
这是我的XML
<?xml version="1.0" encoding="utf-8" ?>
<Questions>
<Question feed="http://entertainment.msn.com/rss/topboxoffice/">What movie has the top box office sales in the US right now?</Question>
<Question feed="http://entertainment.msn.com/rss/topdvdrentals/">What is the top DVD rental in the US this week?</Question>
<Question feed="http://entertainment.msn.com/rss/topalbums/">Which of the following albums is currently topping the charts?</Question>
</Questions>
你能描述一下我发布并安装应用程序后失败的情况吗 如果您能够描述什么不起作用,什么是错误,并提供异常信息,这将非常有用
与你的问题无关,每当我在生产代码中看到空的catch块时,我都会害怕地畏缩 你能描述一下我发布并安装应用程序后失败的情况吗 如果您能够描述什么不起作用,什么是错误,并提供异常信息,这将非常有用
与你的问题无关,每当我在生产代码中看到空的catch块时,我都会害怕地畏缩 根据您的发布描述,我假设您正在使用clickonce安装应用程序 Clickonce对xml文件有不同的默认行为—它假定它们是数据文件,并将它们放置在与其他文件不同的安装位置 请仔细检查您的xml文件是否确实安装在您认为的位置 在“发布设置”中,可以将每个xml文件的设置从“数据文件”更改为“包含”。您的其他文件将被设置为包含
请注意,发布设置独立于文件的生成设置。根据您的发布描述,我假设您正在使用clickonce安装应用程序 Clickonce对xml文件有不同的默认行为—它假定它们是数据文件,并将它们放置在与其他文件不同的安装位置 请仔细检查您的xml文件是否确实安装在您认为的位置 在“发布设置”中,可以将每个xml文件的设置从“数据文件”更改为“包含”。您的其他文件将被设置为包含
请注意,发布设置独立于文件的生成设置。请考虑使用IsolatedStorage存储您的设置,而不是将其存储在相对资源目录中。这将为您提供不同安装方案的已知位置,例如ClickOnce安装。考虑使用IsolatedStorage存储设置,而不是将其存储在相对资源目录中。这将为您提供不同安装场景的已知位置,例如ClickOnce安装。这将有助于准确地知道发生了什么类型的故障,以便我们知道要查找什么。这将有助于准确地知道发生了什么类型的故障,以便我们知道要查找什么。空的catch块是因为这是一段代码,错误处理函数调用在该问题的上下文中并不重要。空catch块是因为这是一段代码,因此错误处理函数调用在该问题的上下文中并不重要。