Visual Studio 2017构建了所有项目,因为"缺少" PDB文件

时间:2018-02-11 14:52:22

标签: visual-studio visual-studio-2017

今天早上我有几分钟时间试图找出每次我尝试运行项目时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)程序集项目的OBJ目录中的PDB文件。它们位于BIN目录中。请注意,在主要"可执行文件" web 项目PDB文件位于OBJ和BIN目录中。

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

  • 将PDB的副本放在OBJ目录中,用于所有项目
  • 在BIN目录中为PDB进行VS检查

我做了一些搜索,但是没有能够找到一套好的搜索词来找到这个搜索词。

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

1 个答案:

答案 0 :(得分:0)

这是在旧版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>

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

还有一些其他内容项设置为&#34;始终复制&#34;这也迫使整个项目重建。我将其更改为&#34;复制如果更新&#34;。