如何解决 "The process cannot access the file .ISPAC because it is being used by another process" 错误?

How do I work around the "The process cannot access the file .ISPAC because it is being used by another process" error?

我使用 SSDT 和 Visual Studio 执行了一个 SSIS 包。当我尝试执行另一个包时,我收到一条错误消息 "The process cannot access the file XXXX.ispac because it is being used by another process"。我试过重新启动,但这是背后的痛苦。我该如何解决这个错误?

您可能会检查您的补丁级别。我在 2015 年版本的 SSDT 中更频繁地看到这种情况,但从那以后我就没那么频繁了。

查找并终止进程

Sysinternals 有一个很棒的工具,叫做 Process Explorer。它是免费的,不需要安装,可以帮助您查看计算机上发生的一切。在这种情况下,您想找到在您的文件 (MyProject.ispac) 上有脏手指的进程,然后将其杀死。

https://helpcenter.gsx.com/hc/en-us/articles/115015880627-How-to-Identify-which-Windows-Process-is-Locking-a-File-or-Folder

另一种不需要获取 Process Explorer 运行 的方法是将构建从开发更改为发布(然后再返回)。

没有泡菜的鸡肉三明治通过评论提问

How can I convert from Development to Release?

在您的工具栏中,单击您在下拉列表中看到开发的位置(或右键单击解决方案资源管理器中的解决方案)

在配置管理器中,您may/may在配置下没有可用的列表。早期版本的 SSIS 项目预定义了 dev/release 配置,但新版本似乎没有。如果您没有其他选择,请通过 <New...>

创建一个

从开发配置中复制值,瞧瞧!

现在,当您调试时,ProjectFolder/bin/Release 将存在并且 dtsdebughost.exe 将锁定该文件并释放指向 ProjectFolder/bin/Development/Project.ispac

的指针

在开发 SSIS 包时出现错误 “进程无法访问文件 '.ispac' 因为它正在被使用通过另一个进程”*.

试图关闭 SSDT 并再次 运行 但是,我们在编译时仍然遇到同样的错误。然后,在网上搜索后,我们得到了解决方案:

解法:

  1. 转到任务管理器–> 详细信息选项卡。
  2. 找到进程“DtsDebugHost.exe”。
  3. 终止这个进程。

此过程可能有多个实例。杀死他们所有人。 这样做之后,我再次尝试编译包,成功了。