首页 > 解决方案 > 从 VS WSL 构建事件中获取输出

问题描述

Visual Studio 有一种相对较新的方式来进行 Linux 构建,使用本地 WSL 系统。这个平台工具集被称为WSL_1_0

远程构建中称为“远程预构建事件”的内容现在称为“Wsl 预构建事件”(在 UI 中......显然在 msbuild 中仍然是远程),它的工作原理基本相同,但执行发生在WSL 在本地机器上而不是在 linux 机器上。

Aaaand...任何脚本输出似乎都被吞下了(与在构建窗口中显示的远程计算机上运行相比):

1>Target RemotePreBuildEvent:
1>  Invoking 'echo "me : stuff error 567 HELLO"', working directory: '/mnt/s/buildroot/CoreTech/ThirdPartyTools/Encryption/Rijndael/Project/Linux'
1>Target ClCompile:
1>  Starting remote build

如果我用脚本替换它,它会被执行..但是输出被吞掉了。

我已经尝试在脚本和命令中重定向到 stderr ,它似乎没有任何改变。我还将Tools->Options->Project and Solutions->Build and Run输出详细程度调整到了我愿意的程度(Normal),没有任何变化。

有人对解决这个问题有任何想法吗?

标签: visual-studiomsbuildwindows-subsystem-for-linux

解决方案


我还调整了工具->选项->项目和解决方案->构建和运行输出详细程度,只要我愿意(正常)没有任何变化。

通常建议将详细程度更改为Detailed或更高以查看更多详细信息。这是我最近知道的唯一VS2019 16.3.7可以控制输出日志行为的选项。

因此,您可以将其更改为“详细信息”以检查是否有更多信息要显示在输出窗口中。(由于某种原因,我的 wsl.exe 配置失败,因此我无法自己测试此选项是否有效)

如果echo信息仍然没有显示,我猜这个场景现在不被支持,因为它是一个相当新的功能。Give Us Feedback只需按照本文档中的建议在 DC 中发布您的反馈即可。那里的团队会考虑并考虑支持这一点。可能会有所帮助:)


推荐阅读