未处理的异常:System.IO.IOException:进程无法访问文件' xxx.nupkg'因为它正被另一个进程使用

时间:2015-08-31 15:44:19

标签: c# wpf nuget squirrel.windows

我正在尝试使用squirrel for windows (版本1.0.0.0),并且无法摆脱该错误。

我已经做了一切,以确保文件确实没有被使用。

以下步骤会在我的电脑上重现错误。

  1. 将nuget包创建为releasify
  2. 重启电脑
  3. 仅打开命令提示符(没有其他应用程序正在运行,甚至不是visual studio)
  4. 运行命令squirrel --releasify Digger.1.0.0.1.nupkg
  5. 奇怪的是,我可以在从releasify命令收到错误后立即删除文件:

    以下是日志。

    2015-08-30 17:28:03> Program: Starting Squirrel Updater: --releasify Digger.1.0.0.1.nupkg
    2015-08-30 17:28:03> Program: Bootstrapper EXE found at:C:\dev\utils\squirrel\Setup.exe
    2015-08-30 17:28:03> Program: Creating release package: C:\dev\projects\ThirdParty\inmediati\Digger\Digger.Cliente.WPF\Releases\Digger.1.0.0.1.nupkg
    2015-08-30 17:28:03> ReleasePackage: Creating release package: C:\dev\projects\ThirdParty\inmediati\Digger\Digger.Cliente.WPF\Releases\Digger.1.0.0.1.nupkg => C:\dev\projects\ThirdParty\inmediati\Digger\Digger.Cliente.WPF\Releases\Digger-1.0.0.1-full.nupkg
    2015-08-30 17:28:03> ReleasePackage: Extracting dependent packages: []
    2015-08-30 17:28:03> ReleasePackage: Removing unnecessary data
    2015-08-30 17:28:03> ReleasePackage: No release notes found in C:\Users\Juan\AppData\Local\SquirrelTemp\tempa\Digger.nuspec
    2015-08-30 17:28:03> Unhandled exception: System.IO.IOException: The process cannot access the file 'C:\dev\projects\ThirdParty\inmediati\Digger\Digger.Cliente.WPF\Releases\Digger.1.0.0.1.nupkg' because it is being used by another process.
       at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       at System.IO.File.InternalDelete(String path, Boolean checkHost)
       at System.IO.File.Delete(String path)
       at Squirrel.Update.Program.Releasify(String package, String targetDir, String packagesDir, String bootstrapperExe, String backgroundGif, String signingOpts, String baseUrl, String setupIcon)
       at Squirrel.Update.Program.executeCommandLine(String[] args)
       at Squirrel.Update.Program.main(String[] args)
    

    BTW:nuget包是使用Any CPU版本创建的。

1 个答案:

答案 0 :(得分:1)

看起来你是GitHub上的线程的所有者,但是为了防止其他人在此期间收到错误,在该特定版本的Squirrel中似乎存在一个错误,即它没有关闭zip文件创建,这是跟踪错误:https://github.com/Squirrel/Squirrel.Windows/pull/425看起来不会太长,直到它被修复。

以下是GitHub中另一个帖子的链接:https://github.com/Squirrel/Squirrel.Windows/issues/422