最近我开始学习C#并在发布后遇到了我的WPF应用程序的问题。
首先,让我解释一下应用程序应该做什么:读取xml文件" testxml.xml",并在ListBox中写出给出的名称。 xml-File位于\ myProject \ bin \ Debug。
我的代码:
public partial class Page1 : Page
{
private string path = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\testxml.xml";
List myList = new List();
public Page1()
{
InitializeComponent();
ReadXML(path, myList,ListBox1);
}
public static void ReadXML(string path, List<TestXML> myList, ListBox ListBox)
{
if (File.Exists(path))
{
XmlSerializer deserializer = new XmlSerializer(typeof(List<TestXML>));
TextReader reader = new StreamReader(path);
object obj = deserializer.Deserialize(reader);
myList = (List<TestXML>) obj;
reader.Close();
}
for (int i = 0; i < myList.Count; i++)
{
ListBox.Items.Add(myList[i].Name);
}
}
}
这在调试模式下工作正常。 所以,我试图发布它。因此,我已将xml文件包含在我的项目中并更改了其设置&#34; Build Action&#34;到&#34;内容&#34;和&#34;更改为输出目录&#34;到&#34;始终复制&#34;。此外,我改变了发布状态&#34;来自&#34;数据文件&#34;到&#34;包括&#34;在我的项目属性中。我通过发布向导将它发布到&#34; C:\ user \&#34;并选择&#34;从CD-ROM或DVD-ROM&#34;。
这给了我一个xbap-File和一个&#34;应用程序文件&#34; -Folder in&#34; C:\ users \&#34;。 xml文件位于&#34; \ Application Files \ MyProject_1_0_0_x \ bin \ Debug&#34;下。但是当我执行xbap-File时,它会给我一个以
开头的巨大错误&#34; System.Reflection.TargetInvocationException:调用目标抛出了异常。&#34;
到目前为止,我的建议是xml文件的目录,在发布后可能无法正常工作。什么是正确的目录? 还是我还有另一个错误?
非常感谢任何帮助!