想知道是否有人可以解决此2010年错误。我有一个在Visual Studio 2008中构建的项目,该项目无法在2010年构建,因为仅当设计师窗口打开时,Visual Studio才能在应用程序运行后坚持使用DLL。我创建了一个非常轻巧的项目,可以显示此问题。如果创建一个应用程序,请创建一个lib dll。在DLL中放置一个表单,在设计视图中打开表单,然后运行应用程序。它将运行良好,然后关闭应用程序,转到设计视图中表单的代码视图,然后更改代码(我只是重命名一个变量),然后尝试重新编译,您将获得以下内容:

错误1无法将文件“ obj debug custylib.dll”复制为“ build debug custylib.dll”。该过程无法访问文件“ build debug custylib.dll”,因为另一个过程正在使用它。

如果您运行Process Explorer并搜索DLL,则持有DLL的唯一过程是Devenv.exe!

我已经在这个问题上进行了大量搜索,并发现了Dev Studio较旧版本的类似问题,人们只能 添加预步 将锁定的DLL移至另一个名称(.Locked)并构建。好吧,第一次有效,但是下次运行然后编辑时,您将被锁定在当前的DLL和您移动到.Locked的dll中,因此,除非我愿意添加代码来随机生成锁定DLL的名称,这对我不起作用(我不希望我的调试目录的大小可以随着文件从未被删除而增长。)

我只找到了一个解决方法,如果您在同一条船上,这就是我要编辑和运行必须做的。我确保在调试器中运行项目之前,请确保关闭每个设计视图窗口。如果您关闭所有开放设计视图,Windows devenv.exe将无法持有DLL。

有人可以更好地解决这个问题吗?

有帮助吗?

解决方案

我不确定这是否对您有用,但是 这个类似的问题 如果您在assemblyInfo.cs中有此行:

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

将其更改为:

[assembly: AssemblyVersion("2.0.0.0")]

将解决这个ISUE。

视觉工作室附加“”vscommands“声称有解决这个问题的解决方案。我尚未测试它,但它也声称有一个In-ide stackoverflow声誉跟踪器,这吸引了我:)

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

  1. F5

  2. 大声说明

  3. alt F4

  4. 3

  5. 不耐烦...

  6. F5

其他提示

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

所以我的建议是:清洁您的构造函数。

在WPF中,可能会插入:

if (DesignerProperties.GetIsInDesignMode(this)) return;

或类似的效果相同。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top