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

