39

由于某种原因,这个错误今天开始在我的一个项目中出现。

错误 1 ​​无法写入输出文件“C:\MyProject\Release\MyProject.pdb”:未指定的错误

如果我进入高级编译选项并将其更改为不生成和调试信息,我的项目编译得很好。

我已经尝试将 Release 文件夹的权限设置为每个人的完全权限,所以我认为这不是权限问题。此外,我的日志文件中没有任何内容可以为我提供有关该问题的更多信息。

有谁知道为什么这个错误会开始出现或修复它的方法?

谢谢。


更新:我已经重新启动了我的机器,多次重新启动 VS,甚至完全删除了发生问题的现有 OBJ 文件。它仍然给我同样的错误。

这是一个简单的项目解决方案,上周运行良好。VS 尝试构建 PDB 文件似乎是一个问题,因为我可以毫无问题地将它们从 Release 和 Debug 文件夹中删除。当我尝试重建它们时,VS 将开始创建文件(大小约为 1.4MB),但我仍然收到错误消息。

4

16 回答 16

56

在把我的头撞在墙上一段时间后,通过源代码控制挖掘试图回到工作副本,结果证明 PDB 文件根本不是问题。当我试图找到该文件以创建调试信息时,有人删除了导致 VS 阻塞的源文件。

因此,如果有人遇到此错误并且无法弄清楚,请确保您没有在某处丢失源文件。

如果 VS 会告诉我文件丢失,而不仅仅是告诉我它在创建 PDB 文件时有一个未指定的错误,那将会非常有帮助。

谢谢。

于 2009-03-09T19:16:30.120 回答
35

这是解决此问题的更好方法。

基本上关闭您的解决方案并在不编译的情况下重新打开它。检查错误列表,它将显示哪些文件丢失。

于 2013-01-18T00:40:49.953 回答
2

这对我有用,其他答案在这里失败了:

无法写入输出文件 [FileName] .pdb:未指定的错误 Visual Studio

于 2012-09-19T08:27:49.973 回答
1

也许其他东西打开了文件,比如编辑器或 Visual Studio 的另一个副本?

尝试关闭并重新启动 VS,甚至重新启动计算机以查看是否可以解决问题。

于 2009-03-09T18:46:50.923 回答
1

在最坏的情况下尝试重新启动 Visual Studio。您可以尝试的另一个好工具是SysInternals的Process Explorer ,它允许您查看谁在处理您的 PDB 文件。这样您就可以确切地知道要杀死/重新启动什么才能访问该文件。

于 2009-03-09T18:46:57.680 回答
1

如果您在解决方案中包含多个项目,则可能会出现错误的编译顺序

于 2009-03-09T18:57:44.143 回答
1

检查将在 Visual Studio 中显示的带有感叹号图标的丢失文件,并且这些文件可能不存在于项目源文件夹中。如果您不希望这些文件在 Visual Studio 中删除它们,则将这些文件添加到源文件夹中。清洁或刷新..

于 2010-11-17T07:06:58.083 回答
1

我收到了同样的错误,它最终成为需要更新的网络参考。更新所有网络参考后,问题仍然存在。最后,我添加了相同的 Web 引用作为相同的 url 和名称,并且添加 Web 引用告诉我有一个相同名称的引用,并提供了一个使用最新信息更新它的选项。这终于奏效了,项目再次运行。

于 2012-05-03T13:43:59.840 回答
1

我想在典型的基础上添加一些Turn it off and on again有用的原因。

Visual Studio 在构建项目时可能会绕轴转,因此它无法弄清楚为什么它缺少特定的依赖项,它只知道它无法构建项目。

以下是重建失败后的描述性错误消息:

无用的错误

解决方案是:

  1. 关闭 Visual Studio
  2. 打开 Visual Studio
  3. 不要编译- 查看错误列表以获取新的描述性错误

有用的错误

许多现有的说明都缺少第三步,所以我认为这可能会有所帮助。

于 2014-12-31T19:43:32.143 回答
0

原因几乎可以肯定是另一个进程挂在该文件的句柄上,从而防止它被覆盖。不幸的是,VS 通常是罪魁祸首。如果是这种情况,重新启动 VS 将解决问题。

于 2009-03-09T18:46:54.510 回答
0

Visual Studio 有时会对文件被锁定感到“困惑”,尤其是在之前的调试运行期间,被调试的应用程序意外崩溃、Visual Studio 意外崩溃,或者有时您只是停止调试。

通常,解决方案是关闭并重新打开 Visual Studio。

于 2009-03-09T18:47:53.247 回答
0

是的 - 如果您从 VSS 中获取项目,请务必检查未从 VSS 中提取的文件。只需查找带有感叹号的文件。一旦项目中的所有文件都位于它们应该在本地的位置,PDB 就会生成而不会出现问题。

于 2009-03-24T20:15:29.647 回答
0

我遇到了同样的错误。原来“服务参考”文件夹已过时。我再次删除并添加了服务引用,它开始工作。

于 2012-07-25T20:06:31.783 回答
0

同样的错误也发生在我身上,但原因不同。有人删除了项目文件但没有更新项目文件;因此该项目正在寻找该文件。该文件上方显示一个黄色警告图标。当我从项目中排除该文件时,问题已解决。

于 2013-10-28T19:37:15.250 回答
0

我在 VS2005 上,当我将 Web 项目作为“解决方案”打开时遇到了这个错误——打开了 .sln 文件——然后点击构建/重建。一旦我关闭了解决方案并将其作为“项目”重新打开——打开了 .vbproj 文件——我在编译/重新编译时得到了特定的缺失源代码错误。我确保所有文件都存在,瞧,它成功完成了构建!

于 2016-02-12T19:39:09.497 回答
0

我在VS2010解决方案中遇到了这个问题,我尝试了上面所有接受的答案,但仍然无法弄清楚为什么编译器找不到(Test.vb)文件。正如一些答案已经提到的那样,.pdb文件不是实际的错误。

该错误是重新打开解决方案而不构建它后出现在错误列表中的错误,即Unable to open module 'C:\Test\Test.vb'。但是,重新打开解决方案对我不起作用。错误提示“Test.vb”丢失,即使“Test.Vb”文件存在于我的本地副本中。那为什么找不到呢?

我为此找到的解决方案是:

  1. 关闭解决方案,关闭VS2010并在VS2015中重新打开解决方案。VS2013可能也可以,但我没有尝试过。
  2. 我在VS2015中构建了解决方案,当然失败了,但是这次错误(特别是在输出窗口中,它显示构建行,包括编译期间发生的错误)显示了“Test.vb”文件的完整路径编译器试图定位。路径是“C:\Test\..\..\Test.vb”,这表明在构建“Test.vbproj”项目时,编译器在“C\Test”文件夹中开始构建,然后附加了.vb文件,在.sln文件中定义,即'..\..\Test.vb'以读取'Test.vb'文件并构建项目。只有它不能''C:\Test\..\..\Test.vb'文件夹,其中'Test.vb'是。

通过更正.sln文件中“Test.vb”的位置,它构建得很好。

于 2020-04-01T16:04:28.957 回答