使用FileInfo读取文件时出现FileNotFoundException

时间:2018-03-14 13:00:47

标签: c# xml wpf file fileinfo

我目前正在使用fileinfo在xml验证器中使用xsd文件。

我有3个项目,一个GUI,界面,项目。输入项目和测试项目。

在输入项目中,我有一个类,它根据同一个对象内的文件路径创建一个FileInfo对象:

new FileInfo(@"Xsd\Version_813\kvppt-8130.xsd")

当我运行我的测试和GUI时,这给我带来了麻烦。例如,当我启动我的GUI时,有时代码工作并且没有问题但是其他时候FileInfo将从GUI项目中搜索Bin / debug文件夹并且XSD不存在。

我知道这是有意的,但是有一种方法可以使这个单元测试项目和GUI项目工作。

我尝试了以下内容:

var executingFileInfo = new FileInfo(Assembly.GetExecutingAssembly().Location);
var path = executingFileInfo.DirectoryName + Path.DirectorySeparatorChar + @"Xsd\Version_813\kvppt-8130.xsd";
Return new FileInfo(path);

但这不是解决方案,因为它仍然会选择启动项目。

---编辑:

在评论中尝试了一些建议后,我发现我的问题有点不同。我发现如果在运行我的应用程序之前按下rebuild all,文件将始终复制到正确的文件夹中。只有在我运行应用程序时它才会失败。

文件的属性已打开"始终复制"

1 个答案:

答案 0 :(得分:1)

  

...有时代码可以运行,但其他时间没有问题   FileInfo将从GUI项目中搜索Bin / debug文件夹   XSD不存在。

确保文件的属性(在Visual Studio中)具有"复制到输出目录"设置为"始终复制"或者"复制如果更新"