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

VS2022中Microsoft.TypeScript.MSBuild构建时.ts/.map文件无故签出求助

解决VS2022中Microsoft.TypeScript.MSBuild构建时无更改文件被签出的问题

以下是几种可行的解决方案,按优先级排序:

  • 启用TypeScript增量编译
    在项目的tsconfig.json中添加或修改配置:

    {
      "compilerOptions": {
        "incremental": true,
        "tsBuildInfoFile": "./obj/tsconfig.tsbuildinfo"
      }
    }
    

    增量编译会生成编译状态文件,仅重新编译修改过的TypeScript文件,避免对未变更文件的无意义写入,从根源上减少不必要的文件签出。

  • 配置MSBuild跳过未变更文件
    在项目文件(.csproj/.vbproj)中添加如下属性配置:

    <PropertyGroup>
      <!-- 让TypeScript MSBuild任务跳过内容未变化的文件 -->
      <TypeScriptSkipUnchangedFiles>true</TypeScriptSkipUnchangedFiles>
    </PropertyGroup>
    

    该配置会强制MSBuild任务仅在文件实际内容发生变化时才写入输出,避免因时间戳更新或元数据变更触发版本控制的签出操作。

  • 清理项目编译缓存
    删除项目根目录下的obj、bin文件夹,以及tsconfig.tsbuildinfo文件,然后重启VS2022并重新构建。缓存损坏可能导致编译器误判文件状态,引发无意义的文件写入。

  • 调整版本控制的自动签出规则
    如果使用TFS等集中式版本控制,检查并关闭“基于文件时间戳变化自动签出”的选项,仅保留“编辑内容时自动签出”的规则。不过此方法仅作为辅助,优先通过编译配置解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:02:33