VS Code构建微软官方项目终端不显示具体报错信息如何解决
VS Code构建微软官方UWP项目仅提示CompileXaml任务返回false无详细错误的解决方法
问题现象
- 构建微软官方UWP示例项目时,代码存在错误的情况下终端仅输出
The "CompileXaml" task returned false but did not log an error.,无错误行号、错误原因等有效参考信息 - 构建非官方UWP项目时终端可正常输出完整报错
- 该问题在多个微软官方UWP示例中复现,包括蓝牙低功耗示例、设备枚举与配对示例等,这类项目构建时产生的所有错误都不会在终端展示详细信息
- 错误表现:

解决步骤
这个问题是两个原因共同导致的:一是官方示例项目默认的构建配置将XAML编译阶段的C#错误标记为了不输出的消息等级,二是VS Code的C#扩展默认MSBuild日志等级过低,吞掉了详细错误输出,按以下步骤配置即可获取完整报错:
- 修改项目配置强制输出XAML编译错误
打开你要构建的UWP项目对应的.csproj文件,在首个<PropertyGroup>节点下添加如下配置:<XamlCompileDiagnosticsEnabled>true</XamlCompileDiagnosticsEnabled> <MSBuildWarningsAsMessages></MSBuildWarningsAsMessages> <ErrorReport>prompt</ErrorReport> - 调整VS Code构建任务的日志等级
- 按
Ctrl+Shift+P打开命令面板,搜索并选择Tasks: Configure Task,选中当前使用的UWP构建任务 - 在打开的
tasks.json配置文件中,找到构建命令的args参数数组,追加两个参数:"/v:detailed", "/flp:logfile=build.log;verbosity=diagnostic"
build.log全量构建日志。 - 按
- 调整C#扩展的MSBuild日志等级
按Ctrl+,打开VS Code设置,搜索Csharp > Ms Build: Log Verbosity,将选项值修改为Diagnostic,重启VS Code生效。
排查提示:如果配置完终端还是没有直接显示
.cs文件的具体错误行,直接打开项目根目录生成的build.log文件,搜索error CS关键词,就能直接定位到C#代码的具体错误位置和原因。这是UWP构建链中XAML编译阶段会吞掉前置C#编译错误的已知问题,不属于本地环境配置错误。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

