相关疑难解决方法(0)

当我在Visual Studio中调试时,为什么会出现"文件被其他进程使用"错误?

使用Visual Studio 2010测试版,当我在IDE中运行我的应用程序进行调试时,它第一次完美运行.但是,在关闭调试会话后,通过关闭应用程序或单击"停止调试"按钮,所有后续调试应用程序的尝试都将失败:

错误1无法将文件"obj\Debug\Application.dll"复制到"bin\Debug\Application.dll".该进程无法访问文件'bin\Debug\Application.dll',因为它正由另一个进程使用.

来自SysInternals的Handle.exe确实显示句柄打开,但即使我关闭句柄,错误也不会消失.任何手动删除文件的尝试都会导致"拒绝访问"错误消息.

要解决这个问题,我必须完全重启Visual Studio,之后Debug会话将工作一次并再次停止.

我不确定这是什么时候开始发生的,但我很确定这是最近的事情.

更新:我强制关闭Application.dll上的句柄后,我从VS收到以下错误:

错误1无法将文件"obj\Debug\Application.dll"复制到"bin\Debug\Application.dll".无法对打开了用户映射部分的文件执行请求的操作.

什么是"用户映射部分"?

更新2:当我尝试调试时在设计视图中打开窗体时,似乎会出现此问题.我将进行更多故障排除,然后发布我的结果.

更新3:我想我已经使用UserControl将其缩小为一个表单.

visual-studio

30
推荐指数
3
解决办法
3万
查看次数

Working with 2 Visual Studio 2015 instances : error CS2012 "file is being used by another process"

With Visual Studio 2013, I used to open 2 instances of Visual Studio :

  • one for a "server" solution (say a WCF host),
  • one for a "client" solution (say a WPF app).

The 2 solutions have a common project, but this was not an issue : I could start the first in debug mode, start the second in debug mode, find a bug, stop one to fix the bug, and start it again (without stopping the second).

This scenario is …

c# visual-studio-2015

18
推荐指数
1
解决办法
9092
查看次数

Visual Studio无法写入输出文件'...\_ \netj\Debug\Foo.Bar.dll"

我在Visual Studio 2010中编译一个大的c#解决方案时遇到了这个错误.每次编译后我都要删除此解决方案使用的项目之一的obj文件夹.否则我收到以下错误:

Could not write to output file '...\obj\Debug\Foo.Bar.dll'
The process cannot access the file because it is being used by another process
Run Code Online (Sandbox Code Playgroud)

我一直在寻找互联网上的解决方案,实际上发现/尝试了一些解决方案.

例如:很多人对开发论坛被建议不开始编译,而用户控件(在一些其他来源设计师打开).

其他一些人使用预构建脚本来删除obj文件夹,这个特殊的解决方案是可以接受的,但如果发布的项目是一个广泛使用的库,它的重新编译将导致重新编译"父"项目.

.net c# compiler-errors build visual-studio

14
推荐指数
1
解决办法
2万
查看次数

关闭启动表单时,如何阻止应用程序终止?

我的项目中有两个表单:Form1和Form2.Form1中有一个按钮,我想要做的是关闭Form1并在单击该按钮时显示Form2.

首先,我试过了

Form2 frm = new Form2();
frm.Show();
this.Close();
Run Code Online (Sandbox Code Playgroud)

但随着Form1的关闭,Form2也被关闭了.接下来,我试过了

Form2 frm = new Form2();
frm.Show();
this.Hide();
Run Code Online (Sandbox Code Playgroud)

但是有一个缺点是当Form2关闭时应用程序不会退出.因此,我必须在Form2的form_FormClosing部分添加其他源代码.

嗯......我想知道这是否是正确的方法......那么,处理这个问题的正确方法是什么?

c# forms

11
推荐指数
2
解决办法
8240
查看次数

调试停止后VS 2k8不释放文件句柄:无法将文件X复制到输出目录,因为它正由另一个进程使用

每隔一段时间,通常当我在UI程序集中停止调试时,我会收到以下错误,这需要重新启动Visual Studio 2008并且这会降低我的工作效率:

错误13无法将文件[UI程序集]复制到[输出目录].该进程无法访问文件[输出目录] [UI程序集],因为它正由另一个进程使用.

重新启动后,我收到此错误:

错误1无法找到元数据文件[RELEASE文件夹中的实用程序功能程序集].

我觉得这真的很奇怪,因为我们从不使用Release配置.

我在Windows Vista上使用VS 2k8 SP1.

我知道这是VS调试器没有通过使用handle实用程序(以前来自Sysinternals)释放其文件句柄.该过程是devenv.exe.

我试过关闭并重新打开解决方案.没工作.只有完整的VS2k8重启才能正常工作.

我已经尝试添加一个预构建事件,按照此处的描述移动文件,但这不起作用,因为Windows无法删除文件的原因与它无法替换它的原因相同:它有一个打开的句柄.

我甚至尝试使用上面描述的handle.exe util手动关闭句柄,然后尝试预构建事件.Visual Studio显然不知道它的句柄已关闭,因为VS构建失败,但handle.exe显示该文件没有打开的文件句柄.

为了记录,这里是我运行的加载项:

  • ReSharper 4
  • Smart Paster 2008
  • Typemock隔离器
  • TestDriven.NET 2.13.2184

我也为此项目使用Developer Express控件,因此也可能与它有关.

visual-studio-2008 visual-studio

6
推荐指数
1
解决办法
1982
查看次数

为什么在Resharper/MSTest下调试时引用的dll被锁定?

我对汇编中的方法进行了集成测试A.大会A集的引用B通过项目引用.我在Resharper 6.1单元测试场景中的Visual Studio 2010调试器下运行它们.测试引擎是微软的原生MSTest.

我臭名昭着

该进程无法访问该文件,...\B.dll因为该文件正由另一个进程使用.

信息.我已经验证没有其他进程可以处理该文件(例如通过Sysinternal的Process Explorer).

从调试器运行测试工作正常.任何想法为什么它发生在调试器下,我可以做些什么来解决它?

debugging resharper unit-testing mstest visual-studio

4
推荐指数
2
解决办法
1101
查看次数