前一段时间我问了一个类似的问题Error Creating Debug Information - Code Won't Compile,但从未找到解决方案。
这个问题似乎有所改进。现在,即使应用程序处于发布模式并且在Web.config中关闭了调试,Visual Studio也会创建PDB调试文件。此PDB文件被Visual Studio和有时w3wp.exe锁定。编译失败,说PDB文件正由另一个进程(devenv.exe,w3wp.exe或两者)使用。在我使用Unlocker释放所有锁之前,我无法编译。
首先,为什么VS在发布模式下创建调试文件?
其次,我该如何解决这个问题?我已经在VS上运行了一个修复安装并重新注册了ASP.Net与IIS,但这没有帮助。我使用的是Windows Server 2003,VS 2008 Standard和IIS6。
当我在使用WPF应用程序时,第一个症状出现在一两周前。直到今天将项目置于发布模式使问题消失。现在它甚至在发布模式下也会发生。
有什么想法吗?
答案 0 :(得分:4)
PDB文件也是为发布版本创建的 - 这是设计使您仍然可以在发布二进制文件中调试崩溃。
运行时当然不需要PDB文件。但是,如果它与正在运行的二进制文件位于同一目录中,则IIS可能正在加载它(虽然不确定IIS在这里做了什么)。您可以将二进制文件复制到另一个文件夹(减去PDB文件)以防止出现此问题。
答案 1 :(得分:2)
您还可以添加自定义后期构建事件以释放配置,以便在其他所有内容都失败时删除pdb文件。