VS2022创建.NET8 Web项目构建失败:DefineStaticWebAssetEndpoints任务异常
错误日志
System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: Last write time for 'C:\Users\jugki\source\repos\BlazorApp1\BlazorApp1\wwwroot\app.css' is not defined. at Microsoft.AspNetCore.StaticWebAssets.Tasks.StaticWebAsset.Validate() at Microsoft.AspNetCore.StaticWebAssets.Tasks.StaticWebAsset.FromTaskItem(ITaskItem item) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.ParallelWorker.Process(Int32 i, ParallelLoopState _) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.<>c.<Execute>b__16_2(Int32 i, ParallelLoopState loop, ParallelWorker state) at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1() at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally) at System.Threading.Tasks.Parallel.For[TLocal](Int32 fromInclusive, Int32 toExclusive, Func`1 localInit, Func`4 body, Action`1 localFinally) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() ---> (Inner Exception #0) System.InvalidOperationException: Last write time for 'C:\Users\jugki\source\repos\BlazorApp1\BlazorApp1\wwwroot\app.css' is not defined. at Microsoft.AspNetCore.StaticWebAssets.Tasks.StaticWebAsset.Validate() at Microsoft.AspNetCore.StaticWebAssets.Tasks.StaticWebAsset.FromTaskItem(ITaskItem item) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.ParallelWorker.Process(Int32 i, ParallelLoopState _) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.<>c.<Execute>b__16_2(Int32 i, ParallelLoopState loop, ParallelWorker state) at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1() at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)<--- ---> (Inner Exception #1) System.InvalidOperationException: Last write time for 'C:\Users\jugki\source\repos\BlazorApp1\BlazorApp1\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.css.map' is not defined. at Microsoft.AspNetCore.StaticWebAssets.Tasks.StaticWebAsset.Validate() at Microsoft.AspNetCore.StaticWebAssets.Tasks.StaticWebAsset.FromTaskItem(ITaskItem item) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.ParallelWorker.Process(Int32 i, ParallelLoopState _) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.<>c.<Execute>b__16_2(Int32 i, ParallelLoopState loop, ParallelWorker state) at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1() at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)<--- ---> (Inner Exception #2) System.InvalidOperationException: Last write time for 'C:\Users\jugki\source\repos\BlazorApp1\BlazorApp1\wwwroot\lib\bootstrap\dist\css\bootstrap-grid.rtl.css' is not defined. at Microsoft.AspNetCore.StaticWebAssets.Tasks.StaticWebAsset.Validate() at Microsoft.AspNetCore.StaticWebAssets.Tasks.StaticWebAsset.FromTaskItem(ITaskItem item) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.ParallelWorker.Process(Int32 i, ParallelLoopState _) at Microsoft.AspNetCore.StaticWebAssets.Tasks.DefineStaticWebAssetEndpoints.<>c.<Execute>b__16_2(Int32 i, ParallelLoopState loop, ParallelWorker state) at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1() at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)<---
问题描述
使用Visual Studio 2022创建基于.NET 8的Web项目(包括ASP.NET Core Web App、Razor Pages、Blazor WebAssembly等),项目刚创建未添加任何代码或包,直接构建就失败,报错:The 'DefineStaticWebAssetEndpoints' task failed unexpectedly. System.InvalidOperationException: Last write time is not defined for some files in wwwroot/lib/.
已尝试的无效方案
- 将项目迁移至OneDrive外的D:\Projects目录
- 禁用Git集成
- 清除模板缓存并重置VS模板路径
- 确保.NET 8 SDK已完全更新
解决思路与变通方案
临时变通方案
手动更新文件修改时间:
打开项目wwwroot目录,选中所有报错的文件(如app.css、bootstrap相关文件),右键进入「属性」-「高级」,确认「存档」属性勾选后保存;或手动修改文件内容(如添加空格再删除)并保存,触发系统更新文件的LastWriteTime元数据。临时跳过StaticWebAssets验证:
在项目的.csproj文件中添加以下配置,禁用StaticWebAssets的处理任务:<PropertyGroup> <DisableStaticWebAssetsProcessing>true</DisableStaticWebAssetsProcessing> </PropertyGroup>注意:此方案仅用于临时调试,发布生产环境前必须移除该配置,否则静态资源可能无法正常加载。
根源排查方向
检查目录权限:
确认项目所在目录的当前用户拥有完全控制权限,避免因权限不足导致系统无法写入文件元数据。更新Visual Studio:
将Visual Studio 2022更新至17.8及以上版本(适配.NET 8正式版的最低版本),旧版本VS可能存在模板生成时的文件元数据写入bug。排查第三方工具干扰:
若系统安装了磁盘加密、云同步类工具,暂时关闭这类工具后重新创建项目,排查是否是工具干扰了文件元数据的正常写入。
内容的提问来源于stack exchange,提问作者Jakkrit Piti

