我使用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");
答案 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文件中,并完全取消配置。