1
XmlReader reader = XmlReader.Create(@"E:\NewFolder\WindowsFormsApplication1\WindowsFormsApplication1\QuestionFile.xml")

在我的应用程序中,我已经读取了一个 xml 文件,该文件位于我电脑中特定位置的位置,但现在我想部署我的应用程序,当我朗读我的 exe 并安装在其他电脑上时,我收到错误,读取xml 文件的错误所以应该我这样做。
就像我曾经阅读过xml文件一样。

如果有人帮助我,我将不胜感激!谢谢

4

3 回答 3

1

您可以将 XML 包含在与您的程序相同的文件夹中。在代码中,动态构建字符串,使用以下内容获取程序当前正在执行的文件夹的名称:

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

之后您需要做的就是将 XML 文件的名称Path.Combine附加或附加到字符串中。

编辑:

(您需要包括对System.IO和的引用System.Reflection)。

您可以创建单独保存路径的字符串,然后使用它来创建您的阅读器:

string xmlLocation = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "QuestionFile.xml");
XmlReader reader = XmlReader.Create(xmlLocation);

请记住,如果您在 VS 的调试中运行它,这将指向您的调试目录,因此请确保其中存在 XML 文件的副本。

于 2012-06-01T08:12:01.537 回答
0

您可以将 questions.xml 与 EXE 打包为嵌入式资源吗?

于 2012-06-01T07:59:58.720 回答
0

好吧,我认为你有两个选择:

1) 将 xml 作为嵌入式资源包含在您的解决方案中,并使用 GetManifestResourceStream 读取它。这是有关如何执行此操作的更多信息。

2) 将其包含在解决方案中并将文件的构建操作设置为内容。然后在您的 MSI 安装程序包中,您可以包含该项目的“内容”输出。这意味着该文件最终将作为单独的物理文件包含在应用程序的安装路径中。有关更多详细信息,请参见此处。第 2 步展示了如何添加不同的输出。

于 2012-06-01T08:09:24.737 回答