我目前正在使用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,文件将始终复制到正确的文件夹中。只有在我运行应用程序时它才会失败。
文件的属性已打开"始终复制"
答案 0 :(得分:1)
...有时代码可以运行,但其他时间没有问题 FileInfo将从GUI项目中搜索Bin / debug文件夹 XSD不存在。
确保文件的属性(在Visual Studio中)具有"复制到输出目录"设置为"始终复制"或者"复制如果更新"