【问题标题】:Visual Studio 2017 builds all project because of "missing" PDB file由于“缺少” PDB 文件,Visual Studio 2017 构建了所有项目
【发布时间】:2018-02-11 14:52:21
【问题描述】:

今天早上我有几分钟的时间试图弄清楚为什么每次我尝试运行项目时,Visual Studio 2017 都会在解决方案中重建所有我的项目。我想我知道为什么会发生这种情况,但我不确定如何解决。

我看过这些文章:

http://michaelscodingspot.com/2017/04/28/visual-studio-keeps-rebuilding-projects-no-good-reason/

https://ofekshilon.com/2015/08/16/visual-studio-projects-that-just-keep-rebuilding-or-how-quantum-mechanics-mess-up-your-build/

这让我打开了构建日志记录。

我现在看到 VS 正在 OBJ 目录中寻找 PDB 文件,由于它们不存在 (1),VS 认为需要重建项目。

3>Project '****.Common' is not up to date. Missing output file 'C:\*******\***\****.Common\obj\Debug\***.****.Common.pdb'.2>Build started.

1) PDB 文件assembly 项目的 OBJ 目录中。它们位于 BIN 目录中。请注意,在主“可执行”web 项目中,PDB 文件位于 OBJ 和 BIN 目录中。

所以现在我需要让 Visual Studio 执行以下操作之一:

  • 所有项目的OBJ目录中放置一份PDB
  • 让 VS 检查 PDB 的 BIN 目录

我进行了一些搜索,但无法找出一组好的搜索词来找到这个问题的答案。

请注意,这是一个使用 VS2012、VS2015、VS2017 以及可能在 2012 年之前开发的项目,所以这可能是问题的一部分。

【问题讨论】:

  • 不,在任何 vanilla 项目中,pdb 都内置在 obj 目录中。之后将其复制到 bin 目录中。 dll的故事相同。为什么这个 Common 项目不这样做是你必须从构建跟踪中弄清楚的事情,你没有显示任何相关的东西来帮助我们帮助你。
  • 是的,我在想它应该这样工作,所以也许在构建过程中有些东西正在删除它。我会更深入地查看是否可以确定它是否被删除。因为它最终在 BIN 文件夹中

标签: visual-studio visual-studio-2017


【解决方案1】:

这是在旧版本 Visual Studio 中创建的程序集项目的问题(在 VS2017 中创建的项目没有问题)。

我找到的解决方法是更改​​ .csproj 文件的这一部分:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 ...
<OutputPath>bin\Debug\</OutputPath>
 ...
</PropertyGroup>

到:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 ...
<OutputPath>obj\Debug\</OutputPath>
 ...
</PropertyGroup>

请注意,您可以通过编辑“输出路径”在“输出”下的“属性/构建”中进行此更改。另请注意,这显然是一种解决方法,因为我不需要对 VS2017 项目执行此操作。如果我去详尽地尝试找出 proj 文件之间的差异,我会更新这个答案。

还有一些其他内容项设置为“始终复制”,这也迫使整个项目重新构建。我将它们更改为“如果较新则复制”。

【讨论】:

    猜你喜欢
    • 2012-06-20
    • 2017-08-07
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 2021-10-30
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多