Visual studio 2010 Visual Studio 2010设计器错误:无法从obj\debug复制到bin\debug

Visual studio 2010 Visual Studio 2010设计器错误:无法从obj\debug复制到bin\debug,visual-studio-2010,debugging,filelock,Visual Studio 2010,Debugging,Filelock,想知道是否有人能解决这个2010年的bug。我有一个在VisualStudio2008中构建得很好的项目,它不会在2010年构建,因为只有在设计器窗口打开的情况下,VisualStudio才会在应用程序运行后保留dll。我创建了一个非常轻量级的项目来说明这个问题。如果创建应用程序,则创建库dll。将一个表单放入dll,在“设计”视图中打开表单,然后运行应用程序。它将正常运行,然后关闭应用程序,在“设计”视图中转到窗体的“代码”视图,并更改代码(我刚刚重命名了一个变量),然后尝试重新编译,您将获得

想知道是否有人能解决这个2010年的bug。我有一个在VisualStudio2008中构建得很好的项目,它不会在2010年构建,因为只有在设计器窗口打开的情况下,VisualStudio才会在应用程序运行后保留dll。我创建了一个非常轻量级的项目来说明这个问题。如果创建应用程序,则创建库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和移动到的dll之外。锁定,因此,除非我愿意添加代码为锁定的dll随机生成名称,否则这对我不起作用(我不希望调试目录的大小随着文件永远不会被删除而增长)

我只找到了一个解决方法,如果你在同一条船上,这就是我必须做的编辑和运行。在调试器中运行项目之前,我确保每个设计视图窗口都已关闭。如果关闭所有打开的设计视图,windows devenv.exe将不会保存dll


是否有人能更好地解决此问题?

我不确定这是否适用于您,但如果您在AssemblyInfo.cs中有这一行:

[assembly: AssemblyVersion("2.0.*")]
将其更改为:

[assembly: AssemblyVersion("2.0.0.0")]
将解决这个问题

Visual Studio加载项“”声称已修复此问题。我还没有测试过它,但它还声称有一个IDE内stackoverflow声誉跟踪器,这让我很感兴趣:)

您的“调试前关闭设计器”解决方案似乎对我有效(到目前为止),对此我非常感谢。它开始进入这样一个阶段,我一天中的大部分时间都花在以下工作流程中

  • F5

  • 大声咒骂

  • ALT F4

  • 赢3

  • 不耐烦地等待…

  • F5

  • 我有同样的问题很久了,然后突然消失了。我意识到问题的根源是在WCF服务和WPF控件的构造函数中初始化代码。在清除构造函数与其他程序集的依赖关系之后,一切都很好

    所以我的建议是:清洁你的施工人员

    在WPF中,可以插入:

    if (DesignerProperties.GetIsInDesignMode(this)) return;
    

    或者类似的方法也会有同样的效果。

    这很烦人,而且在我记忆中的各种VS中都发生过。尝试创建一个最小复制项目,并将其提交给Microsoft Connect,尽可能多地提供信息。也许你找到了一个他们可以解决的问题。很好的建议,我刚刚添加了一个bug,让我们看看它会带来什么。这里有一个链接指向MS Connect()中的问题。如果你有同样的问题,请单击“我可以重新编程”按钮。我想越多的人这样做,这个问题就越有可能得到解决。我必须生成版本号,这样解决方法就不会解决我的问题。我在工作流程上和你在一起,我也在做同样的事情。谢谢你的回答。我们遇到的这个问题是表单而不是WPF,尽管它也发生在我们的WPF项目中。我会试试看。谢谢