创建调试信息时出错 - 代码无法编译

时间:2009-09-25 14:21:34

标签: c# visual-studio-2008

我正在使用VS 2008.当我在代码中进行更改并尝试编译时,我收到以下错误:

  

错误7创建意外错误   调试信息文件'C:\ Documents   和设置\ jbezanson \我的   文档\ MyProjects下\ DispatchBoard \ DispatchBoard \ OBJ \调试\ DispatchBoard.PDB”    - 'C:\ Documents and Settings \ jbezanson \ My   文档\ MyProjects下\ DispatchBoard \ DispatchBoard \ OBJ \调试\ DispatchBoard.pdb:   该进程无法访问该文件   因为它被另一个人使用   处理。 'DispatchBoard

使用Process Explorer,锁定文件的始终为devenv.exe。如果我在发布模式下运行,则不会发生这种情况。它开始于2天前,当我启动一个WPF应用程序时,从那时起它就发生在我工作的每个应用程序上。

我可以从Google找到的唯一信息是指VS 2003中的错误。

其他人有这个问题吗?我如何解决它?每次我想编译时都要杀死文件句柄会非常烦人。

20 个答案:

答案 0 :(得分:19)

如果您打开了多个VS实例,请关闭其他实例(除了您尝试编译的实例) - 这可能会解决问题。

答案 1 :(得分:9)

当我遇到锁定文件的问题时,我使用Unlocker。 (如果你尝试了所有的东西并且它不起作用,试试这个;)

如果链接断开,这里是mirror

答案 2 :(得分:6)

您是否尝试过关闭VS,删除obj folder然后重新启动VS?

答案 3 :(得分:4)

唯一对我有用的是从我的Web.Config文件中的编译元素中删除optimizeCompilations =“true”属性。

编译时间可能会长一点,但效果很好。

答案 4 :(得分:4)

今天早上我遇到了同样的问题并注意到我打开了另一个项目,该项目引用了一个无法编译或调试的项目。我删除了引用(因为我实际上并不需要它)并且它很好。

答案 5 :(得分:3)

我将解决方案的'StartUp Project'更改为项目而不参考锁定文件的项目。 这解决了我使用VS 2010 SP1的问题。

(Process Explorer称msvsmon.exe(由devenv.exe启动)锁定了pdb文件。 更改启动项目后,进程msvsmon.exe和.vshost.exe消失,文件句柄也消失了。)

亚历克斯克拉克,谢谢你指出我正确的方向。

答案 6 :(得分:3)

要避免该问题,只需打开项目属性,转到“调试”选项卡,取消选中“启用Visual Studio托管过程”

答案 7 :(得分:2)

我今天遇到了这个问题。在我的情况下,我刚从公司的源代码控制中获取数据,并在我尝试编译项目时立即遇到了这个问题。问题最终是\ bin文件夹设置为只读。为了解决这个问题,我刚刚将文件夹设置为只读。

答案 8 :(得分:1)

我今天遇到了同样的问题。然后我意识到出了什么问题:我同时打开了几个Visual Studio窗口,其中一个窗口处于调试模式。

当我停止调试模式时,问题就解决了。

当你打开“一把VS窗户”时会发生这种情况。

答案 9 :(得分:1)

右键单击包含调试.pdb的文件夹,然后取消选中只读属性文件夹,然后确定。就是这样。

答案 10 :(得分:1)

这适用于Visual Studio Express 2012 for Web中的Web项目:

  1. 按F5开始调试
  2. "您想要执行上次成功的构建吗?" - 点击是
  3. 此时您可以尝试请求 - 不确定此步骤是否必要
  4. 点击停止按钮
  5. 重新编译

答案 11 :(得分:0)

老话题,但对我有用的东西。我的解决方案中有2个项目,类库类型项目和Windows窗体项目。 Windows窗体项目引用了已编译的二进制文件而不是我的情况下的项目本身导致锁定。更改对类库项目的引用后,它正常工作。

答案 12 :(得分:0)

当我调试Web部件然后尝试部署解决方案时,在sharepoint中发生了这件事。我不得不停止调试,并且一切正常。

答案 13 :(得分:0)

从Cassini更改为IIS Express作为我的调试平台之后,我开始出现此问题。

Cassini比IIS Express好得多,但并不能正确支持Integrated管道。 IIS Express毫无希望。

这似乎是Visual Studio或IIS Express中的某种竞争条件。这与锁定另一个项目的一个项目无关 - 锁只来自Web应用程序构建过程的活动。

无论如何,上述解决方案都不适合我。 Unlocker似乎不再支持Windows 8了。所以我尝试了LockHunter。我所做的就是让LockHunter应用程序全天开放。如果我收到有关某个文件被锁定的投诉,我会将文件路径复制并粘贴到LockHunter中,然后再试一次。这通常可以解决问题,但有时需要几次尝试。

答案 14 :(得分:0)

我也有同样的问题。试了上面的所有建议没有运气。我最终将构建配置从调试更改为发布,构建了解决方案...

答案 15 :(得分:0)

我不时遇到同样的问题。通常没有问题但偶尔会出现问题......这个特定的时间,这是不可能的。我会关闭应用程序,即使这在大多数情况下都不起作用。我看到这篇文章,一个人说他们在启动WPF应用程序之前没有任何问题。我在Windows 8" Music"应用程序。我有一个想法,那就是使用Visual Studio构建的Microsoft应用程序。一旦我停止播放音乐,我从未遇到过错误。如果您正在阅读此内容,请查看您是否正在运行任何Microsoft应用程序。

答案 16 :(得分:0)

无需重启或删除文件。删除将无法删除,您将收到错误消息。只需重命名文件即可。 VS2010将为您创建另一个文件,因为它找不到原始文件。 :)

答案 17 :(得分:0)

这对我有用。我做的是关闭我的visual studio并删除.suo文件,然后重新打开解决方案。现在锁定应该消失了。欢呼声。

答案 18 :(得分:0)

我通过将这些行添加为预构建事件来解决类似的问题:

if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"

经过适当修改后,它可能会对您的问题有所帮助。

答案 19 :(得分:0)

既然你说你在所有应用程序上都有它,那听起来就像是一个更全局的问题。您可以尝试通过编写

重新启动vs2008

devenv.exe / setup

修改:link to command line options

相关问题