我试图编写一些代码将几个dll包装到我的dll中。 在我的解决方案中,其中一个项目负责将内部zip资源提取到第二个项目使用的输出dll。 仅在提取完成后才执行对第二个项目的引用。 我的问题是,在第一次执行时,我得到了FileNotFoundException的异常。 我认为问题是ZipArchive ExtractToFile在写入刷新到磁盘之前返回。
我想听听有关这个问题的一些想法(我想在提取后添加一些睡眠,但它感觉不对......)
我的提取代码是:
private static void ExtractToDirectory(ZipArchive archive, string executionPath)
{
foreach (var entry in archive.Entries)
{
if (!File.Exists(Path.Combine(executionPath,entry.Name)))
{
entry.ExtractToFile(Path.Combine(executionPath, entry.Name));
}
}
}
答案 0 :(得分:0)
如何在第一个项目的构造函数末尾引用第二个项目?在第一个项目解压缩文件之前,第二个项目可能尝试在某些静态构造函数或方法中读取文件。你实际拥有多大的ZIP文件以及其中有多少文件?