【发布时间】:2010-08-18 18:57:44
【问题描述】:
想知道是否有人能解决这个 2010 年的错误。我有一个在 Visual Studio 2008 中构建良好的项目,但不会在 2010 年构建,因为只有在打开设计器窗口时,Visual Studio 才会在应用程序运行后保留 dll。我创建了一个非常轻量级的项目来显示这个问题。如果您创建应用程序,则创建一个 lib dll。将一个表单放入 dll 中,在设计视图中打开该表单,然后运行该应用程序。它将运行良好,然后关闭应用程序,在设计视图中转到表单的代码视图,并更改代码(我只是重命名了一个变量)然后尝试重新编译您得到以下结果:
错误 1 无法将文件“obj\Debug\customlib.dll”复制到“build\debug\customlib.dll”。该进程无法访问文件“build\debug\Customlib.dll”,因为它正被另一个进程使用。
如果您运行 Process Explorer 并搜索 dll,则唯一持有该 dll 的进程是 devenv.exe!!!
我对这个问题进行了大量搜索,并发现与旧版本的 Dev Studio 类似的问题,人们只需 add a pre-step 将锁定的 dll 移动到另一个名称 (.locked) 并构建。好吧,这是第一次工作,但是下次运行然后编辑时,您将被锁定在当前 dll 和您移至 .locked 的 dll 之外,所以除非我愿意添加代码以随机生成锁定 dll 的名称,这对我不起作用(我不希望我的调试目录大小随着文件永远不会被删除而增长。)
我只找到了一种解决方法,如果您在同一条船上,这就是我必须做的编辑和运行。在我在调试器中运行我的项目之前,我确保每个设计视图窗口都已关闭。如果关闭所有打开的设计视图窗口 devenv.exe 将不会保存 dll。
有没有人能更好地解决这个问题?
【问题讨论】:
-
这很烦人,从我记事起就一直在各种 VS 中发生。尝试创建一个最小的复制项目并将其提交给 Microsoft Connect,并提供尽可能多的信息。也许你找到了他们可以修复的。
-
很好的建议,我刚刚添加了一个错误,让我们看看它的结果。
-
这里是 MS Connect 中问题的链接 (connect.microsoft.com/VisualStudio/feedback/details/587281/…) 如果您有同样的问题,请单击“我可以重现”按钮。我认为这样做的人越多,这个问题得到解决的机会就越大。
标签: visual-studio-2010 debugging filelock