如何确定为什么Visual Studio在构建解决方案时可能会跳过项目


92

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

1> ------跳过全部重建:项目:pr1lib ------

如何确定为什么跳过了这些构建?我找不到其他输出。

这与VS2008一起使用,解决方案由c#和c ++代码组成。


除了提供的答案外,请确保解决方案配置设置的每个项目都处于应检查状态(已选中)(应选中):Build > Configuration Manager: check as needed
Metro Smurf

2
解决项目被跳过的原因。确保添加/fl到构建设置以获取包含原因的msbuild.log文件。例如:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D

2
@T_D-我在Visual Studio的哪里添加'/ fl'?日志会出现在哪里?如果将其添加为答案,我会投票,因为大多数其他答案都是各种随机猜测来解决问题,而不是回答原始问题,这仅仅是关于获取有关该问题的更多信息。
PaulG

@PaulG请参阅下面的答案。只需在选项中进行设置即可。
达伦·伍德

Answers:


85

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

[ 编辑 ]:
参见Kdt的评论:...当我查看配置属性时...在将解决方案设置为构建“任何CPU”的同时,将项目构建目标配置为“混合平台”。

*当我遇到此问题时,主项目只有“ Any CPU”,并且它也将子dll设置为“ any CPU”,但是,我删除了该配置文件,仅保留了“ x86”。只为dll选择x86使其开始工作
[/ edit]


20
我当时有一个神秘的“跳过的构建”,当我查看配置属性时,确实将该项目标记为构建。但是,将项目构建目标配置为“混合平台”,而将解决方案设置为构建“任何CPU”-更改这些以匹配解决了该问题。
kdt

2
就我而言,尽管所有项目和解决方案都设置为“ Any CPU”,但一个项目却跳过了建设。只有在将解决方案设置为“混合平台”然后再返回到“任何CPU”之后,它才能构建。查看解决方案文件前后的差异,它从{784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU变为{784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU。唯一的区别是该行末尾的“ Any”和“ CPU”之间增加了空间。
西蒙·图西

5
在我的情况下,所有项目都设置为“ Any CPU”,并且通过删除项目(删除项目不会导致文件被删除)并将它们重新添加到解决方案中来解决问题。
哈米德·迈耶利

41

我只是遇到了同样的问题-“卸载项目”和“重新加载项目”解决了该问题!


我有同样的问题,并且卸载/重载确实可以,但是问题似乎又回来了,当一堆项目发生时,这很烦人,而您必须卸载/重载每个项目……任何人都知道是否存在完全避免这种情况的方法?
Liron

当我尝试进行构建时,Visual Studio在输出窗口中错误地将项目报告为已经是最新的时,这为我解决了这个问题。
凯文·莱蒂

27

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

从解决方案中删除项目并将其重新添加后,就不再跳过该项目。要删除它,请在解决方案资源管理器中,右键单击项目>删除>确定。要将其添加回去,在解决方案资源管理器中,右键单击解决方案>添加>现有项目,然后选择您的项目


6
请记住,您将必须将所有ProjectReferences重新添加到该项目。
约瑟夫

9

如果配置为x64,但未安装x64编译器,则会跳过该项目。


1
+1天才。您可以在此处找到SP1:microsoft.com/download/en/details.aspx?
id=10986

如果未安装x64编译器,则您甚至无法选择x64。
Calmarius

解决方案和项目配置可以定义和使用标题为“ x64”的条目。处理器arch的第三个ddl。(平台目标-构建属性页面的一半)是不可用的
StingyJack

9

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

但是这种解决方案意味着项目之间的引用不见了

为避免重新添加引用,并且如果您使用版本控制系统(如GIT或TFS或其他任何版本),则可以通过以下步骤实现目标:

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

  2. 遍历所有项目,从解决方案中删除它们并添加现有的

  3. 请注意,.sln文件已更改

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



5

visual studio 2008,可能是因为未安装64位编译器。

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

在Visual Studio对话框上

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


3

嘿,刚解决这个问题。认为这可能会有所帮助。您很可能没有随Visual Studio一起安装相应的编译器。今天这发生在我身上-默认情况下,VS 2008安装程序不会安装x64 C ++编译器。

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


3

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


2

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


2

我也发生了类似的事情。我不确定问题出在哪里,但无法清理构建重建等。我在Visual Studio 2017中进行操作,并需要一个netstandard2.0程序集。对我来说,问题是项目类型不正确,也许我是从netcoreapp类库开始的,类似这样,卡在解决方案文件中,我不记得了。无论如何,我备份了该项目,创建了一个新的netstandard类库项目,并考虑了备份的位,然后为我修复了它。有人。


2

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

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

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

我在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文件中删除了这四行,现在事情似乎又高兴了


大!就是这样!我从.sln文件中删除了所有行,该行以仅表示“ Global”的行开头,并删除了所有行,直到“ EndGlobal”。然后它再次工作。
泰德

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

4.保存文件5.打开Visual Studio,一切都更好


2
为什么有帮助?添加一些解释并尽可能详细,以便将来的读者可以帮助您理解为什么需要采取这些步骤。

2

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

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

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

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

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


2

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

在此处输入图片说明


7
详细设置对您没有帮助。输出仍然仅显示“跳过的项目”,而没有解释原因。
PaulG

1

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


1

VS2005遇到相同的问题,所有配置都正确。它甚至跳过了Clean project命令。

最终,卸载/重新加载成功了。


1

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


1

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

在上述方法均无效后,这对我有用。


0

我发现有时候,当您将目标平台设置为在解决方案和项目中使用x86时,项目实际上并不总是选择它。

要再次检查,请转到项目属性,然后查看是否可以在Build-> Platform设置中选择该平台,然后将需要转到配置管理器并创建该配置。


0

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

事实证明,尽管我的WinCE平台显示为活动平台,但Visual Studio并未“真正”看到它。解决方案是使用管理员权限重新安装WinCE SDK

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

0

如果没有安装x64编译器,VS 2008将跳过x64目标。VS 2008默认情况下不是。一种东西,东西。


0

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

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

然后,重新构建,我得到了很多程序集引用丢失的错误,这是有道理的,因为我还没有向它们添加引用。


0

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


0

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


0

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


0

我只是遇到了这个麻烦:

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

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

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


0

视觉工作室2017

在配置管理器中添加配置后

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

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


0

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

不适合我的解决方案:

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

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

发生原因:

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

有效的解决方案:

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.