【发布时间】:2010-05-03 20:07:41
【问题描述】:
这个很奇怪。 Visual Studio 2008 似乎没有释放它对为我的项目创建的 .DLL 的句柄,所以我第二次(以及随后的时间)构建时,当 Studio 尝试覆盖更改的 .dll 时,它会收到拒绝访问错误。我也无法复制/删除有问题的 .dll(Tasks.dll),而 Visual Studio 在我构建一次后打开。 Process Explorer 告诉我 devenv.exe 正在使用该文件,所以我知道 Visual Studio 在构建完成后不会放弃它。
以前有没有人见过这种情况,如果有,我该怎么办?显然,在每次构建之间打开和关闭 Visual Studio 不是一个可接受的解决方案,并且该问题在系统重新启动后仍然存在。
更多背景知识:我在另一个项目的 UsingTask MSBuild 指令中使用了导致错误的项目的 DLL (Tasks.dll),我们称之为测试。设置项目构建顺序,以便在 Test 之前构建 Tasks,然后 Test 的 AfterBuild 任务从 /bin/debug/Tasks.dll 调用任务。
【问题讨论】:
-
你是把其他项目作为项目引用,还是直接从他们的\bin引用他们的DLL?
-
您是否将您的 bin 目录添加到源代码管理并使其锁定?
-
该项目不受源代码控制,所以至少没有问题...编辑以解决其他问题
-
您是否厌倦了清洁溶液。然后建设?
-
您是否在构建之间进行调试,如果是,是否有 WCF 服务导致后台 WcfSvcHost.exe 运行并持有 DLL 的句柄?