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
相关产品推荐
相关产品推荐

