如何确定在构建解决方案时,Visual Studio 为什么会跳过某些项目。

140

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

1> ------ Skipped Rebuild All: Project: pr1lib ------

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

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


除了提供的答案之外,确保解决方案配置设置中每个应该被清理/构建的项目都处于选中状态(复选框已选中):生成 > 配置管理器:根据需要进行勾选 - Metro Smurf
2
为了解决项目被跳过的原因,请确保在构建设置中添加“/fl”以获取包含原因的msbuild.log文件。例如:“由于假条件而被跳过; (('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU')) 被评估为(('Debug' == 'Release') and ('AnyCPU' == 'Any CPU'))。” - T_D
4
@T_D - 在Visual Studio中,我应该在哪里添加'/fl'?日志会出现在哪里?如果您将此作为答案添加,我会点赞,因为大多数其他答案都是各种随机猜测来解决问题,而不是回答最初的问题,即获取有关问题的更多信息。 - PaulG
@PaulG 请看下面的回答。只需在选项中设置即可。 - Darren
39个回答

0

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

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

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


0

我遇到了麻烦:

我把VS 2017更新到最新版本15.9.11,其中一些项目也被更新到了.net core 2.2。我最初加载了所有项目并尝试构建/清理/重建,但所有操作都被跳过了。按照以下步骤解决问题:

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

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


0

Visual Studio 2017

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

右键单击项目 -> 仅项目 -> 仅构建 / 重新构建 / 仅清理

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


0

如果您没有安装x64编译器,VS 2008将跳过x64目标。默认情况下,VS 2008不会安装x64编译器。这是一件很明显的事情。


0

删除 .\obj.\bin 目录就可以了。


0

在 Configuration Manager 中将所有内容设置为不构建,重新构建,然后将所有内容设置为构建,重新构建即可解决问题。神奇!


0

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

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

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

-2

确保首先执行"clean"操作。 Visual Studio通常不会重建不过期的项目(在其看来),而只是重复使用已经存在的目标代码。

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

希望这可以帮助到您。


4
不,当一个项目是最新的时,Visual Studio会在日志中标明,并将其视为“未跳过”。 - Roman Starkov

-2

我曾经遇到过同样的问题,卸载然后重新加载项目肯定会解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接