想知道是否有人对这个 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 类似的问题,人们只需添加一个前置步骤即可将锁定的 dll 移动到另一个名称(.locked)并构建。好吧,这是第一次工作,但是下次运行然后编辑时,您将被锁定在当前 dll 和您移至 .locked 的 dll 之外,所以除非我愿意添加代码以随机生成锁定 dll 的名称,这对我不起作用(我不希望我的调试目录大小随着文件永远不会被删除而增长。)
我只找到了一种解决方法,如果您在同一条船上,这就是我必须做的编辑和运行。在我在调试器中运行我的项目之前,我确保每个设计视图窗口都已关闭。如果关闭所有打开的设计视图窗口 devenv.exe 将不会保存 dll。
有没有人有更好的解决这个问题的方法?