2009-10-13 166 views
1

前段时间我问了一个类似的问题Error Creating Debug Information - Code Won't Compile但从未找到解决方案。Visual Studio在发布模式下创建调试文件

这个问题似乎有所发展。现在Visual Studio正在创建一个PDB调试文件,即使应用程序处于发布模式并且在Web.config中关闭了调试。此PDB文件被Visual Studio锁定,有时也会被w3wp.exe锁定。编译失败,说PDB文件正在被另一个进程使用(devenv.exe,w3wp.exe或两者)。在使用Unlocker释放所有锁之前,我无法进行编译。

首先,为什么VS在发布模式下创建一个调试文件?

其次我该如何解决这个问题?我已经在VS上运行修复安装,并重新注册ASP.Net与IIS,但没有帮助。我正在使用Windows Server 2003,VS 2008 Standard和IIS6。

当我在WPF应用程序上工作时,第一个症状在一两个星期前出现。直到今天将项目置于发布模式之后,问题才消失。现在即使在发布模式下也是如此。

任何想法?

回答

2

你试试这个:http://callicode.com/Homeltpagegt/tabid/38/EntryId/24/How-to-disable-pdb-generation-in-Visual-Studio-2008.aspx

您还可以添加自定义的构建后事件来释放配置,以便在其他所有操作失败时删除该pdb文件。

+1

感谢您的链接完美工作。 – modernzombie 2009-10-13 19:33:57

+1

我打算投票回答此问题,因为链接不起作用,并且链接的内容未在此答案中发布。这就是为什么SO不赞赏链接作为答案的原因之一。如果链接的内容,即实际的解决方案已发布为答案,那本来就不错。 – Birey 2014-05-14 16:05:54

4

也为发布版本创建了PDB文件 - 这是通过设计,所以您仍然可以调试发行版二进制文件中的崩溃。

PDB文件当然不是运行所必需的。但是,如果它与正在运行的二进制文件位于同一目录中,则IIS可能正在加载它(不确定IIS在这里做什么)。您可以将二进制文件复制到其他文件夹(减去PDB文件)以防止此问题。

相关问题