发布时system.io.filenotfoundexception

时间:2012-06-25 20:32:34

标签: c#

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

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

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

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

我用来加载xml文件的行是

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

1 个答案:

答案 0 :(得分:0)

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

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

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

<强>的App.config

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

.cs文件

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

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

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