
【问题】VS 2026 C 控制台项目改完代码后第一次生成只编译不链接运行的是旧 exe■ 环境- Windows 11内部版本 26200- Visual Studio Community 2026版本 18.10.2- 平台工具集 v145MSVC 14.51.36231cl 19.51.36260- Windows SDK 10.0.26100.0- VS 安装在非系统盘D:\visual studio- 项目VS 模板「控制台应用」只有一个 hello.cpp配置 Debug | x64- 解决方案是新格式 .slnx■ 现象1. 新建项目CtrlF5 运行 → 正确打印 hello world2. 把字符串改成别的内容CtrlF5 → 打印的仍然是 hello world旧内容3. 不改代码再按一次 CtrlF5 → 这时才打印出新内容即链接永远比编译慢一拍。每改一次代码需要生成两次才能看到效果。4. 「重新生成解决方案」(Rebuild) 每次都正常5. 全程没有任何报错和警告「输出」窗口显示「生成: 1 成功0 失败」并且照常打印 Project1.vcxproj - D:\...\Project1.exe 这一行■ 硬证据- 改完代码生成后hello.obj 时间戳更新了读取其二进制内容新字符串确实在里面编译成功- 同时 Project1.exe 时间戳和内容完全没有变化链接没执行- 详细日志/v:detailed里 Link 任务的原文任务LinkD:\...\PROJECT1\PROJECT1\X64\DEBUG\HELLO.OBJ 的输出D:\...\PROJECT1\X64\DEBUG\PROJECT1.EXED:\...\PROJECT1\X64\DEBUG\PROJECT1.PDB所有输出均为最新。而此刻 hello.obj 比 Project1.exe 新 14 秒obj 00:56:35 / exe 00:56:21- 用命令行 MSBuild 直接构建也能复现加 /nr:false禁用节点复用依然复现→ 说明不是 IDE 界面的问题在生成系统这一层■ 已排除- system(pause) 导致进程驻留锁住 exe已删除该行且确认无进程占用 exe- .vs 缓存、x64 中间目录残留全部删除后从零重建仍复现- .slnx 里平台名写 x86 而项目是 Win32用的是 x64 配置- MSBuild 节点复用/nr:false 仍复现- 增量链接设 LinkIncrementalfalse 仍复现■ 我目前用的绕法在 .vcxproj 的 Microsoft.Cpp.targets 导入之后加Target NameForceRelink BeforeTargetsLinkDelete Files$(TargetPath) //Target链接前删掉旧 exe链接器就无法判定最新必然重新链接。实测有效且不影响编译的增量性不改代码时 hello.obj 不会重新编译。■ 想请教的问题1. 这是 VS 2026 / v145 工具集的已知 bug 吗有没有官方 issue 或修复版本2. 有没有比每次删 exe更正规的解法某个设置或属性3. 这个现象是否和「解决方案用 .slnx 新格式」或「VS 装在非系统盘」有关非常感谢您的付出