Visual studio 2008 无法覆盖Visual Studio 2008.dll文件,访问被拒绝
这个很奇怪。Visual Studio 2008似乎没有释放为我的项目创建的.dll的句柄,因此在我构建第二次(以及后续时间)时,当Studio尝试覆盖更改的.dll时,它会收到一个拒绝访问错误。当Visual Studio在我构建一次后处于打开状态时,我也无法复制/删除有问题的.dll(Tasks.dll)。Process Explorer告诉我devenv.exe正在使用该文件,因此我知道Visual Studio在生成完成后不会放弃它 以前有人见过这个吗?如果有,我能做些什么?显然,在每个构建之间打开和关闭VisualStudio并不是一个可接受的解决方案,而且这个问题在系统重新启动时一直存在Visual studio 2008 无法覆盖Visual Studio 2008.dll文件,访问被拒绝,visual-studio-2008,dll,Visual Studio 2008,Dll,这个很奇怪。Visual Studio 2008似乎没有释放为我的项目创建的.dll的句柄,因此在我构建第二次(以及后续时间)时,当Studio尝试覆盖更改的.dll时,它会收到一个拒绝访问错误。当Visual Studio在我构建一次后处于打开状态时,我也无法复制/删除有问题的.dll(Tasks.dll)。Process Explorer告诉我devenv.exe正在使用该文件,因此我知道Visual Studio在生成完成后不会放弃它 以前有人见过这个吗?如果有,我能做些什么?显然,在每个
更多背景信息:我正在另一个项目的UsingTask MSBuild指令中使用导致错误的项目DLL(Tasks.DLL),我们称之为Test。设置项目生成顺序,以便在测试之前生成任务,然后测试的后生成任务从/bin/debug/Tasks.dll调用任务。确定。我们也有同样的问题。我无法确切说明问题发生的时间以及重现问题的条件,但在我们的情况下,问题发生在我们有多个模块的项目中,每个模块引用了多个其他模块,引用的模块也引用了其他模块等 这真的很烦人,我们花了很多时间试图找出问题所在,以及如何解决问题,但都没有成功 我们不能重构项目来简化引用(太贵),我们也不能花更多的时间来研究问题,所以我们找到了解决方法——虽然不完美,但它帮助了我们,我们在该项目中使用了多年。这有点复杂,但我将尝试描述它:
-MyProject(目录)
-Bin(dir)
*Proj1.exe
*Proj2.dll
*Proj3.dll
-Src(dir)
-Proj1(dir)
-项目2(目录)
-bin(dir)
-项目3(目录)
-bin(dir)
复制“$(TargetDir)\$(TargetName).pdb”“$(SolutionDir)Bin”
- 这是第一次只生成Proj3,因此在生成后事件命令的结果中,它将被复制到MyProject/Bin
- 现在要添加对程序集MyProject/Bin/Proj3.dll的引用(浏览到程序集文件,不要引用项目)。在“项目依赖项”对话框中,手动设置此项目需要先生成Proj3。随后生成“Proj2”,以便将其复制到MyProject/Bin(后期生成事件命令)
- 最后,在Proj1中添加对程序集MyProject/Bin/Proj2.dll的引用(再次浏览到程序集)。在“项目依赖项”中,手动设置此项目需要Proj2来生成FIR。从现在起,您可以构建整个解决方案
- 配置和维护复杂,尤其是在项目不断增长且经常添加新项目时
- 当您将项目签出到fresh目录,并且使用诸如ReSharper之类的工具来分析代码时,在第一次构建之前,它将报告大量错误
- 为了减少编译时间,您需要为每个不应在本地复制的引用手动设置
- 某些文件在使用时仍然会发生这种情况,但在我们的环境中,这种情况有时每周发生一次,有时每月发生一次
taskkill
命令终止Visual Studio进程及其所有子进程
您可以从命令提示符或PowerShell调用此命令
taskkill -IM devenv.exe /F /T
这两个参数用于/F
orce和/T
也会杀死子进程
注意:有关详细信息,请在命令行上输入
taskkill-?
您是将其他项目作为项目引用,还是直接从其\bin引用其DLL?是否将bin目录添加到源代码管理并将其锁定?该项目不受源代码管理,因此至少没有问题…编辑以解决其他问题您是否厌倦了清理解决方案。然后生成?您是否在生成之间进行调试,如果是,您是否有导致后台WcfSvcHost.exe运行并保留DLL句柄的WCF服务?