我正在嘗試編寫一些將幾個dll包裝到我的dll中的代碼。我的解決方案中的 其中一個項目負責將內部zip資源提取到第二個項目使用的輸出dll。 僅在提取完成後纔會執行對第二個項目的引用。 我的問題是,在第一次執行時,我得到了FileNotFoundException異常。 我相信問題是ZipArchive ExtractToFile在寫入刷新到磁盤之前正在返回。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));
}
}
}
何時以及如何運行該代碼? –
在第一個項目的構造函數上。 (在調用代碼之後)我引用了第二個項目。 – silver
當我用反射引用第二個項目時,問題是不可重現的...... 這意味着問題是靜態鏈接dll的加載是在訪問第一個而不是訪問它們時的右邊,右? – silver