C# 发布时system.io.filenotfoundexception

C# 发布时system.io.filenotfoundexception,c#,C#,我使用VisualStudio2008、第三方DLL、xml文件和图像用c#编写了一个表单应用程序。这些图像已作为资源添加到项目中 当我尝试在另一台计算机上运行已发布版本的可执行文件时,会引发System.IO.FileNotFoundException 如果我将.exe文件复制到电脑的桌面上,并将DLL和xml文件复制到桌面上,双击exe即可 在我的项目中,对于所需的dll引用,我将copyLocal设置为true。xml将添加到项目中,并设置为“复制”(如果更新到输出目录)。我还检查了发布应

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

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

如果我将.exe文件复制到电脑的桌面上,并将DLL和xml文件复制到桌面上,双击exe即可

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

我用来加载xml文件的行是

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

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

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

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

App.config

<add key="ExternalConfig" value="D:\\config.xml"/>
您也可以使用相对路径,但请记住,您始终是相对于当前工作目录的


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

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

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

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

App.config

<add key="ExternalConfig" value="D:\\config.xml"/>
您也可以使用相对路径,但请记住,您始终是相对于当前工作目录的


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

尝试将这些文件作为内容并始终复制(或复制,如果是新的)请参见“您是否尝试读取代码中的任何文件?”将fileName.xml设置为“内容”时参见+1尝试将这些文件作为内容并始终复制(或复制,如果是新的)请参见“您是否尝试读取代码中的任何文件?”将fileName.xml设置为“内容”时参见+1我看不出在文件名前面加“\”将如何解决文件未找到异常。这两个文件名是等效的。我看不出在文件名前面加“\”将如何解决“找不到文件”异常。这两个文件名是等效的。