2010-08-18 75 views
4

想知道是否有人有解决这个2010 bug的解决方案。我有一个在Visual Studio 2008中建好的项目,在2010年不会生成,因为只有在设计器窗口打开时,Visual Studio才会在应用程序运行后继续执行dll。我创建了一个真正轻量级的项目来展示这个问题。如果你创建一个应用程序,然后创建一个lib DLL。将一个表单放入dll中,在设计视图中打开表单,然后运行该应用程序。它会运行良好,然后关闭应用程序,转到设计视图中窗体的代码视图,然后更改代码(我刚更名为单个变量),然后尝试重新编译以获得以下内容:Visual Studio 2010 Designer错误:无法从obj debug复制到bin debug

错误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的名称,这不会为我工作(我不希望我的调试目录大小增长与文件永远不会被删除。)

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

有没有人有更好的解决这个问题?

+0

这很烦人,并且只要我记得,一直在各种VS中发生。尝试创建一个最小的复制项目并尽可能多地将其提交给Microsoft Connect。也许你找到了他们可以修复的一个。 – 2010-08-18 19:05:39

+0

非常棒的建议,我只是添加了一个错误,让我们看看它是什么。 – 2010-08-18 19:32:33

+2

这里是MS Connect中问题的链接(https://connect.microsoft.com/VisualStudio/feedback/details/587281/vsual-studio-2010-designer-bug-unable-to-copy-from-obj-debug -bin-debug)如果您遇到同样的问题,请单击“我可以重新生成”按钮。我认为做的人越多,这个机会就越好。 – 2010-08-24 19:02:14

回答

3

我不知道这是否会为你工作或没有,但this similar question如果你有这一行的AssemblyInfo.cs:

[assembly: AssemblyVersion("2.0.*")] 

将其更改为:

[assembly: AssemblyVersion("2.0.0.0")] 

将解决这是。

Visual Studio加载项“VSCommands”声称对此问题有修复。我没有测试过,但它也声称有一个在-IDE计算器信誉跟踪这令我着迷:)

你“关闭设计师调试之前”解决办法似乎是为我工作(到目前为止) ,对此我很感激。它已经开始进入我大部分时间都花在以下工作流程中的阶段......

  1. F5

  2. 大声咒骂

  3. ALTF4

  4. WIN

  5. 等待不耐烦地...

  6. F5
+0

我必须生成版本号,因此解决方法不能解决我的问题。我在工作流上和你在一起,我也在做同样的事情。感谢你的回答。 – 2010-12-01 19:29:15

1

我有同样的问题,很长一段时间,然后突然他们消失了。我意识到问题的根源是在WCF服务和WPF控件的构造函数中初始化代码。从任何依赖关系清理构造函数到其他程序集后,一切都很好。

所以我的建议是:清理你的构造函数。

在WPF可能的是,插入:

if (DesignerProperties.GetIsInDesignMode(this)) return; 

或类似将具有相同的效果。

+0

我们遇到的这个问题是在Forms中,而不是在WPF中,尽管它也发生在我们的WPF项目中。我会尝试一下。谢谢。 – 2010-12-15 13:44:57

相关问题