【问题标题】:Visual Studio 2010 Designer Bug: Unable to copy from obj\debug to bin\debugVisual Studio 2010 设计器错误:无法从 obj\debug 复制到 bin\debug
【发布时间】: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


【解决方案1】:

我不确定这是否对你有用,但this similar question 如果你在 AssemblyInfo.cs 中有这一行:

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

改成:

[assembly: AssemblyVersion("2.0.0.0")]

会解决这个问题。

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

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

  1. F5

  2. 大声咒骂

  3. ALT F4

  4. WIN 3

  5. 不耐烦地等待……

  6. F5

【讨论】:

  • 我必须生成版本号,所以解决方法不能解决我的问题。我在工作流程上和你在一起,我也在做同样的事情。感谢您的回答。
【解决方案2】:

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

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

在 WPF 中可以插入:

if (DesignerProperties.GetIsInDesignMode(this)) return;

或类似的会产生相同的效果。

【讨论】:

  • 我们遇到的这个问题是在 Forms 而不是 WPF 中,尽管它也在我们的 WPF 项目中发生。我会尝试一下。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多