使用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将其缩小为一个表单.
With Visual Studio 2013, I used to open 2 instances of Visual Studio :
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 …
我在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文件夹,这个特殊的解决方案是可以接受的,但如果发布的项目是一个广泛使用的库,它的重新编译将导致重新编译"父"项目.
我的项目中有两个表单: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部分添加其他源代码.
嗯......我想知道这是否是正确的方法......那么,处理这个问题的正确方法是什么?
每隔一段时间,通常当我在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显示该文件没有打开的文件句柄.
为了记录,这里是我运行的加载项:
我也为此项目使用Developer Express控件,因此也可能与它有关.
我对汇编中的方法进行了集成测试A.大会A集的引用B通过项目引用.我在Resharper 6.1单元测试场景中的Visual Studio 2010调试器下运行它们.测试引擎是微软的原生MSTest.
我臭名昭着
该进程无法访问该文件,
...\B.dll因为该文件正由另一个进程使用.
信息.我已经验证没有其他进程可以处理该文件(例如通过Sysinternal的Process Explorer).
从调试器运行测试工作正常.任何想法为什么它发生在调试器下,我可以做些什么来解决它?