gpt4 book ai didi

c++ - DLL 锁定 - Visual Studio 2010 C++

转载 作者:行者123 更新时间:2023-11-30 05:39:53 26 4
gpt4 key购买 nike

我目前登录到一台机器上,我当前的问题涉及自定义构建步骤,该步骤无法将 .dll 复制到 Bin 目录,因为 Windows 表示它无法访问该文件,因为它当前正被另一个进程使用。

我能够在其他几个项目中重现这一点。事件的顺序是我成功构建了一个版本,进行了一些测试,在执行 git bisect 时检查了另一个 SHA,然后尝试从该 SHA 构建一个版本而不执行 git clean -xfd(故意,因为我正在尝试缓存尽可能多的可重用数据)。奇怪的是我尝试使用 Process Explorer (procexp) 和 tasklist /m <locked_dll.dll>搜索此 dll 上的任何内容,但无法找到此 dll 上的任何内容。我使用的是非管理员帐户,我不确定这是否导致 Windows 对我 stash 某些进程。重启机器会有所帮助,但这不是一个可以接受的解决方案,因为我正在尝试自动化。我可以删除 .dll,当我尝试在 VS 中构建项目时,它会提示在尝试将它复制到 Bin 文件夹时仍然无法访问该 dll。有任何想法吗?我将继续研究这个问题,但就目前而言,我有点不知所措。

编辑:这似乎是一个重复的问题 ( Error: Cannot access file bin/Debug/... because it is being used by another process ),但我会将其打开以查看是否有人发现了与该主题相关的任何新内容。

最佳答案

我在 VS 2010 中看到过这个问题,它有一个包含多个项目的大型 .Net 解决方案。到目前为止,我见过的每个案例都涉及到一个项目具有另一个项目也使用的依赖 DLL,并且另一个项目也使用第一个项目作为引用,并且还使用了相同的依赖 DLL,但恰好是不同版本的第一个项目。

换一种说法:

项目 A 依赖于 DLL A 的 v1

项目B依赖于项目A和DLL A的v2

项目A和B都在同一个解决方案中

解决方案是使用相同版本的 DLL A。我通常在升级到新版本的 SQLite 时遇到这个问题,而我忘记更新我所有项目中的依赖项。

关于c++ - DLL 锁定 - Visual Studio 2010 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com