Visual Studio 2010 Designer错误:无法从obj debug复制到bin debug

想知道是否有人有这个2010年的bug的解决方案。我有一个在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的名称,这对我不起作用(我不希望我的调试目录大小增长,文件永远不会被删除。) 我只发现了一个解决方法,如果你在同一条船上,这就是我要编辑和运行的方法。我确保在调试器中运行项目之前,每个设计视图窗口都已关闭。如果你关闭所有打开的设计视图窗口devenv.exe将不会持有该DLL。 有没有人有更好的解决方案来解决这个问题?     
已邀请:
我不确定这是否适合你,但如果你在AssemblyInfo.cs中有这一行,这个类似的问题:
[assembly: AssemblyVersion("2.0.*")]
将其更改为:
[assembly: AssemblyVersion("2.0.0.0")]
将解决这个问题。 Visual Studio加载项“VSCommands”声称可以解决此问题。我还没有测试过它,但它还声称有一个IDE内置的stackoverflow声誉跟踪器,它引起了我的兴趣:) 您的“调试前关闭设计器”解决方案似乎对我有用(到目前为止),对此我非常感激。它开始进入我的大部分时间用于以下工作流程的阶段...... F5   大声咒骂 ALT F4 赢3   不耐烦地等待...... F5     
我很长一段时间遇到了同样的问题然后突然间他们消失了。我意识到问题的根源是在WCF服务和WPF控件的构造函数中初始化代码。在将构造函数从任何依赖项清理到其他程序集之后,一切都很好。 所以我的建议是:清理你的构造函数。 在WPF中,插入可能是:
if (DesignerProperties.GetIsInDesignMode(this)) return;
或类似的将具有相同的效果。     

要回复问题请先登录注册