You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019无文件变更提示up-to-date不执行构建解决方法

Visual Studio 2019 强制每次执行完整构建配置方法

问题现象

项目配置post-build(生成后)脚本后,无文件变更时触发构建会直接判定为up to date(已是最新),跳过所有生成步骤包括post-build脚本,构建输出如下:

Build started...
========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========

该现象在IDE内点击生成、命令行调用msbuild执行普通构建时都会出现。

永久配置方案(修改项目文件)

该方案配置完成后,每次点击普通生成、调用普通msbuild命令都会走完整构建流程,不需要手动选重新生成:

  • 右键目标项目,选择「卸载项目」,再次右键已卸载的项目,选择「编辑[你的项目名].csproj」
  • 找到文件内第一个没有条件限制的<PropertyGroup>节点,在节点内添加两个配置项:
<!-- 关闭VS快速最新版本检查 -->
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
<!-- 关闭MSBuild基于文件时间戳的*增量构建*判断 -->
<MSBuildDisableFastUpToDateCheck>true</MSBuildDisableFastUpToDateCheck>
  • 如果添加上述配置后仍偶发跳过构建,在csproj文件末尾、</Project>闭合标签前追加如下目标配置,强制构建系统判定项目始终为过期状态:
<Target Name="ForceBuildEveryTime" BeforeTargets="CoreCompile">
  <PropertyGroup>
    <_ProjectIsUpToDate>false</_ProjectIsUpToDate>
  </PropertyGroup>
</Target>
  • 保存csproj文件,右键项目选择「重新加载项目」即可生效。

临时方案(不修改项目配置)

如果只是临时需要触发完整构建,不需要改项目文件:

  • IDE内操作:不要点「生成」,直接点击顶部菜单栏「生成」-「重新生成[解决方案/项目]」,该操作默认会清理上次构建产物,完整执行所有构建步骤包括post-build脚本
  • 命令行MSBuild操作:执行构建命令时追加/t:Rebuild参数,强制走重建流程,示例命令:
msbuild YourProject.csproj /t:Rebuild /p:Configuration=Debug

注意:如果post-build脚本本身不需要依赖完整重编译,不建议长期开启强制全量构建,会增加不必要的构建耗时。如果只是需要每次执行指定脚本,可以单独给脚本配置独立的自定义生成目标,不需要强制全量编译。

内容的提问来源于stack exchange,提问作者POVR2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 09:54:29