Blazor项目MSB4044错误:WriteLinesToFile任务缺少必填参数File
错误详情
错误 MSB4044:"WriteLinesToFile" 任务未获得必填参数 "File" 的赋值。
- 关联项目:BlazorTutorial.Client
- 触发报错的文件路径:
C:\Program Files\dotnet\sdk\5.0.400\Sdks\Microsoft.NET.Sdk.BlazorWebAssembly\targets\Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.targets
对应报错的代码段:
// !---报错代码行 <WriteLinesToFile File="%(_ServiceWorkerIntermediateFile.Identity)" Lines="/* Manifest version: $(_ServiceWorkerAssetsManifestVersion) */" Condition="'$(_ServiceWorkerAssetsManifestVersion)' != ''" />
已尝试的操作:
- 将SDK版本从5.0.3升级到5.0.4,问题未解决
- 更新Visual Studio版本,未生效
- 从Git仓库回滚到项目可正常运行的版本,仍报相同错误
- 新建Blazor项目不会触发该错误
- 清理项目→退出Visual Studio→删除bin和obj文件夹→重新打开项目→重建项目,仍然出现相同错误
解决方案
修改服务端的program.cs文件,删除CreateHostBuilder方法中手动指定内容根目录和Web根目录的两行代码:
// 位于服务端的program.cs文件 public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { // 移除以下两行代码 // webBuilder.UseContentRoot(Directory.GetCurrentDirectory()); // webBuilder.UseWebRoot("wwwroot"); webBuilder.UseStartup<Startup>(); });
完成代码修改后,删除服务端的wwwroot文件夹,错误即可完全消失。
内容的提问来源于stack exchange,提问作者NKl
相关产品推荐
相关产品推荐

