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

dotnet watch运行时自动删除scripts文件夹及package.json问题求助

ASP.NET项目启动时Git出现异常变更的问题排查

我有一个ASP.NET项目,使用dotnet watch和npm运行,每次在Rider中启动时,Git都会显示三个异常变更:scripts文件夹下的两个文件被移除,package.json文件被删除。我的Web.csproj文件中包含以下配置,实在搞不懂原因,求解答。

<ItemGroup>
    <Folder Include="Controller\" />
    <Folder Include="styles\" />
    <Folder Include="scripts\" />
    <Folder Include="ViewModels\" />
    <Folder Include="Views\Partials\Svg\" />
    <Folder Include="wwwroot" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\Core\Core.csproj" />
    <ProjectReference Include="..\Models\Models.csproj" />
  </ItemGroup>

  <ItemGroup>
    <TypeScriptCompile Include="scripts\index.ts" />
  </ItemGroup>

可能的原因及解决方向

  • Rider自动清理逻辑:检查Rider的Settings > Build, Execution, Deployment > Build Tools > MSBuild配置,看是否开启了自动清理非项目关联文件的选项;同时确认项目文件结构与csproj引用是否匹配,避免IDE误判文件为冗余。
  • dotnet watch与MSBuild的冲突:dotnet watch结合MSBuild处理TypeScript时,若<TypeScriptCompile>仅指定单个文件,MSBuild可能将scripts下其他文件视为“未被项目引用”而清理。可以尝试将<TypeScriptCompile>替换为<Content Include="scripts\**" />,确保所有scripts文件都被纳入项目范围。
  • npm脚本误操作:检查package.json中的启动脚本,确认是否包含删除文件、清理目录的命令(比如clean类脚本被自动触发)。
  • 项目引用冗余冲突:csproj中的<Folder>标签仅用于IDE显示空目录,若scripts目录已有实际文件,这个标签可能和TypeScriptCompile产生冲突,尝试移除<Folder Include="scripts\" />后再测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:54:58