2

我使用 Visual Studio 2008、第三方 dll、xml 文件和图像在 c# 中编写了一个表单应用程序。图像已作为资源添加到项目中。

System.IO.FileNotFoundException当我尝试在另一台机器上运行已发布版本的可执行文件时抛出A。

如果我将 .exe 文件复制到 pc 上的桌面,并将 dll 和 xml 文件复制到桌面,双击 exe 可以正常工作。

在我的项目中,对于所需的 dll 引用,我将 copyLocal 设置为 true。xml 被添加到项目中,如果输出目录较新,则设置为复制。我还检查了发布应用程序文件,一切都在那里。

我用来加载 xml 文件的行是这样的

config = new XmlDocument();
config.Load("fileName.xml");
4

1 回答 1

0

我假设当您尝试加载 XML 文件时抛出 FileNotFound 异常,对吗?

简单地寻找“filename.xml”对我来说似乎不是一个好主意,特别是如果这是您应用程序的关键配置文件。

我通常会尝试将这些东西移动到我的 App.config 文件中,然后使用完全限定路径或短路径加载它们。例如:

应用程序配置

<add key="ExternalConfig" value="D:\\config.xml"/>

.cs 文件

config = new XmlDocument();
config.Load(ConfigurationManager.AppSettings["ExternalConfig"]);

您也可以使用相对路径,但请记住,您始终是相对于当前工作目录的。

或者,根据您的配置中的数据类型,您可以尝试将此信息存储到您的 App.config 文件中并完全取消 config.xml。

于 2012-07-23T20:30:23.997 回答