如何确定Visual Studio在构建解决方案时可能会跳过项目的原因

时间:2009-08-23 22:37:57

标签: visual-studio msbuild

我正在调试其他人的工作,解决方案非常庞大。当我尝试构建整个事物时,解决方案中的几个项目不会构建,只是跳过。在构建过程中查看输出窗口说:

  

1> ------ Skipped Rebuild All:项目:pr1lib ------

如何确定跳过这些构建的原因?我无法找到额外的输出。

这是VS2008,解决方案由c#和c ++代码组成。

36 个答案:

答案 0 :(得分:77)

右键单击解决方案,选择“属性”,然后选择“配置属性”。在这里,您可以选择要构建的项目。

[修改]:
请参阅Kdt的评论:...当我查看配置属性时...项目构建目标已配置为“混合平台”,而解决方案设置为构建“任何CPU”。

*当我遇到这个问题时,主项目只有'任何CPU'并且它将子dll设置为'任何CPU',但是,我删除了该配置文件并只留下'x86'。仅为dll选择x86使其开始工作
[/编辑]

答案 1 :(得分:36)

我遇到了同样的问题 - “卸载项目”和“重装项目”解决了这个问题!

答案 2 :(得分:11)

正在跳过构建,重建和清理操作。卸载和重新加载没有帮助,也没有重启Visual Studio。

一旦我从解决方案中删除了项目并将其添加回来,就不再跳过它。要删除它,请在解决方案资源管理器中右键单击项目>删除>好。要将其添加回来,请在解决方案资源管理器中右键单击解决方案>添加>现有项目并选择您的项目

答案 3 :(得分:9)

如果配置是x64并且未安装x64编译器,它将跳过该项目。

答案 4 :(得分:8)

重新启动Visual Studio可以达到目的

答案 5 :(得分:5)

Visual Studio 2008,可能是因为没有安装64位编译器。

控制面板 - >程序和功能 - > Microsoft Visual Studio 2008专业版 - > [双击]

在Visual Studio对话框

下一步 - >添加/删除功能 - > (下)Visual C ++ - > (选择)x64编译器和工具

答案 6 :(得分:3)

嘿,刚修好这个。认为它可能有所帮助。您很可能没有与visual studio一起安装相应的编译器。今天发生在我身上 - 默认情况下,VS 2008安装程序不安装x64 C ++编译器。

如果您有SP1,请在更改VS安装之前将其卸载。完成后,再次安装SP1。

答案 7 :(得分:3)

VS 2010中也存在问题;建议的解决方案:编辑构建配置,清理,更改/重新更改目标框架,不起作用。但卸载和重新加载项目确实如此。

答案 8 :(得分:2)

转到构建菜单并选择“配置管理器”。这将显示哪些项目配置为在您选择的配置中构建。

答案 9 :(得分:1)

我刚刚遇到了这个问题,并且能够通过删除最顶层文件夹中隐藏的 .vs 文件夹来解决它。重新启动 Visual Studio 后一切正常。

答案 10 :(得分:1)

您需要做的第一件事是诊断构建为何跳过项目。因此,要获得详细的构建输出,请在detailed的以下位置将详细程度更改为Visual Studio

enter image description here

答案 11 :(得分:1)

我的解决方案与前面提到的相同: 删除->添加现有项目

但是,该解决方案意味着项目之间的引用不存在

为避免重新添加引用:,如果您使用的是版本控制系统(例如GIT或TFS或其他工具),则可以通过以下方式实现目标步骤:

  1. 确保在操作之前所有更改都已提交/签入

  2. 浏览所有项目,将其从解决方案中删除并添加现有项目

  3. .sln文件已更改

  4. 保留新的.sln文件,但使用版本控制系统撤消对所有.cspoj文件的更改

答案 12 :(得分:1)

  1. 关闭Visual Studio
  2. 使用记事本打开sln文件
  3. 删除所有类似的内容: {B546C55D-9321-4FC0-B25C-46844222BEBE}。使用 Fakes | x86.ActiveCfg =使用Fakes | x86进行调试(会有很多 他们)

4。保存文件 5.open visual studio更好

答案 13 :(得分:1)

在这里的其他可能性中,我有一个很奇怪的东西可能值得记录。

我在解决方案中添加了Shared Project,并且在其他两个或三个项目中使用了代码。如您所知-共享项目只是代码,而不是传统意义上的项目。您不能“构建”共享项目,它只是将代码嵌入到其他项目中,然后在其中构建。

但是以某种方式我的解决方案文件已经更新,就好像共享项目是需要构建的属于自己的东西一样。我当时猜想,无论何时我尝试构建,而我都没有更改共享项目中的代码,那么它就提示“什么都没有改变,请跳过那些构建”

我在solution.sln文件中找到了共享项目,例如:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

..没关系。不好的是,这个项目也出现在GlobalSection(ProjectConfigurationPlatforms) = postSolution中,例如:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

我从.sln文件中删除了这四行,现在一切似乎又很开心了

答案 14 :(得分:1)

我也发生了类似的事情。我不确定是什么问题,但不会 Clean Build Rebuild 等。我在中进行操作Visual Studio 2017 ,并希望使用netstandard2.0程序集。对我来说,问题在于项目类型不正确,也许我是从netcoreapp类库开始的,类似的东西卡在 Solution 文件中,我不记得了。无论如何,我备份了项目,创建了一个新的netstandard类库项目,并考虑了备份的位,然后为我修复了它。有人。

答案 15 :(得分:1)

右键单击解决方案资源管理器中的解决方案,然后单击菜单底部的“属性”。在属性窗口中,点击配置属性 - >左窗格中的配置,您将在右侧窗格中看到项目列表,确保在弹出窗口中选中了“构建”复选框。

答案 16 :(得分:1)

与VS2005遇到同样的问题,所有配置都是正确的。 它甚至跳过了Clean项目命令。

最后卸载/重新加载真的很神奇。

答案 17 :(得分:1)

遇到同样的问题,发现项目设置是针对Itanium CPU的,将其更改为Intel修复它。

答案 18 :(得分:1)

如果您的解决方案包含NuGet项目(* .nuproj)文件,请尝试卸载它,然后重建您的解决方案。

在上述任何一项工作完成后,这对我有用。

答案 19 :(得分:0)

i更新至15.9.11,...经过一些构建,同样的问题:大多数项目都被跳过(第二次构建没有问题)。就我而言,卸载/重新加载解决方案总是有帮助的,但是很快就会再次发生。

我不知道为什么...除了VS2017中的一个大错误

我检查了配置管理器,所有复选标记都设置为构建。

也许与nuget包有关,但这只是一个猜测

该解决方案只有c ++ / vcxproj,没有csproj。同时安装了64和32

答案 20 :(得分:0)

确保首先执行“干净”.. Visual Studio通常不会重新构建一个不过时的项目(就其而言)并且只会重新使用它已经存在的目标代码具有。

运行clean应清除所有以前编译的代码,VS不应跳过项目(假设配置管理器已选择构建项目...参见上一个答案)。

希望有所帮助。

答案 21 :(得分:0)

删除children.\obj目录可以解决问题。

答案 22 :(得分:0)

右键单击解决方案->删除,然后添加现有项目,这对我有用。

答案 23 :(得分:0)

这是我在VS 2019中发生的,解决方案是仅重新启动Visual Studio。 我的构建配置从未修改过。

答案 24 :(得分:0)

它将跳过任何具有依赖项目而无法构建的项目的构建。

答案 25 :(得分:0)

问题:“重建,构建,清理”跳过了我的所有项目,除了其中两个项目。

不适用于我的解决方案:

  1. 解决方案配置设置符合预期,因此没有任何帮助。

  2. 卸载和重新加载均无效。

发生的原因:

之所以发生这种情况,是因为这两个项目的目标.NET框架较高(4.7),而其他项目则较低。最初弹出一个提示,要求我安装.NET 4.7,但事实证明,如果不重新启动计算机就无法识别它已安装。

可行的解决方案:

  1. 重新启动计算机即可解决问题。重新启动后,它可以正确识别出已安装.NET 4.7。
  2. 或者,通过右键单击项目->属性->应用程序->目标框架并将其设置为与被跳过的其他项目相同的方式来降级项目的目标框架,也解决了该问题。

我建议安装最新的.NET Framework并重新启动计算机,以避免遇到进一步的问题。

答案 26 :(得分:0)

我发现,有时当你的目标平台设置为允许在你的解决方案和项目中说x86时,项目实际上并不总是选择它。

要仔细检查,请转到项目属性,看看是否可以在Build-> Platform设置中选择该平台,如果不能,则需要转到配置管理器并创建该配置。

答案 27 :(得分:0)

Visual Studio 2017

在配置管理器中添加配置

右键单击项目->仅项目->仅生成/仅重建/仅清理

如果其他所有设置都正确。

答案 28 :(得分:0)

我刚遇到这个麻烦:

已将VS 2017更新到最新版本15.9.11,我的项目很少更新到.net core 2.2。最初,我加载了所有尝试建筑/清洁/重建的项目,而所有内容都被跳过了。请按照以下步骤解决:

  1. 我卸载了每个项目,然后重新加载了它们。
  2. 关闭了VS的所有实例 并以管理员身份打开VS(右键单击快捷方式,然后 选择“以管理员身份运行”选项)

就是这样,一切都恢复了正常运转,我能够成功构建所有项目。

答案 29 :(得分:0)

我在新PC上遇到了一些Windows CE项目的问题。 “卸载项目”和“重新加载项目”似乎解决了这个问题,但实际上Visual Studio只是切换到了另一个平台并构建了它。

事实证明,虽然我的WinCE平台被显示为活动平台,但Visual Studio并没有“真正”看到它。解决方案是reinstall the WinCE SDK with administrator priveleges

  • 确保Visual Studio 2008未运行。
  • 以管理员身份打开“Visual Studio 2008命令提示符”。在Windows 7上,只需右键单击快捷方式,然后选择“以管理员身份运行”选项。
  • 输入以下命令:msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • 当被问到您是否希望自定义或完整安装选择自定义时,并指示安装程序省略文档的安装(在我的情况下这个步骤不是必需的;实际上我只是要求它“修复”现有安装。)
  • 安装

答案 30 :(得分:0)

我有类似的问题,我有一个项目由于某种原因无法加载到解决方案资源管理器中。当我加载该项目时,它就像一个魅力。

答案 31 :(得分:0)

我在Visual Studio 2017 15.9.4中遇到了这个问题,经过一段时间的搜索和查找,我发现在我的解决方案中,其中一个项目的.csproj文件在TFS中合并后遭到损坏。 (我可以通过从解决方案中卸载有问题的项目来构建其他项目)。 我解决问题的方法是,在合并前后比较了.csproj文件并进行了修复。通过修复,我的意思是由于我自己项目的类型是.netStandard,所以我删除了不必要的行,包括 Configuration PropertyGroup ,以及新.csproj文件中的所有其他内容,使其与以前的类似.netstandard样式的版本。

答案 32 :(得分:0)

如果您没有安装x64编译器,VS 2008将跳过x64目标。 VS 2008默认情况下不会。有点儿,事情。

答案 33 :(得分:0)

我更新了Visual Studio 2017的一个小更新,然后安装程序提醒我重新启动计算机,但我没有重新启动。在Visual Studio 2017中构建项目或解决方案时,我遇到了上述相同问题。更新可能是密钥,所以我重新启动计算机,我做到了。:>

答案 34 :(得分:0)

我从Telerik的反编译器生成项目后尝试重新编译它时遇到了类似的问题。每当我尝试重建它时,都会跳过该项目。尝试了很多上面的建议,但对我来说,它是在项目属性中选择的.NET Framework。

右键单击解决方案文件中的项目,选择属性,应用程序选项卡,将目标框架从4.0更改为3.5。

然后,重建,我得到了一堆程序集引用缺失错误,这是有道理的,因为我还没有添加对它们的引用。

答案 35 :(得分:-1)

我检入我的项目以从一台计算机上获取源代码控制权,然后将其下载到另一台计算机上,该软件将无法在那里正确构建。它会跳过构建项目,甚至不会为输出创建主\ Debug文件夹。

解决方案(VS2019)是右键单击解决方案,然后选择Configuration Manager

我看到没有为我正在构建的两个项目选中构建复选框(如下所示)。我不知道为什么不检查它们,但检查它们并构建项目就可以了!

enter image description here