Ubuntu上的Dotnet构建返回代码1

Ubuntu上的Dotnet构建返回代码1,ubuntu,.net-core,Ubuntu,.net Core,我有一个.NET Core 2.1解决方案,可以在Windows环境中很好地编译。当我尝试在Ubuntu环境中构建它时,它似乎已成功编译: 267警告 0个错误 但它返回的退出代码为1(应为0)。我翻遍了原木,发现: 生成失败 但是输出中没有任何错误,也没有关于构建失败原因的线索 如何诊断这个问题?嗯,我不能直接回答这个问题(如何诊断),但我还是设法诊断了这个问题 dotnet build默认情况下为Windows环境创建工件。如果希望构建在Linux中工作,则必须在命令行参数中指定,例如 do

我有一个.NET Core 2.1解决方案,可以在Windows环境中很好地编译。当我尝试在Ubuntu环境中构建它时,它似乎已成功编译:

267警告

0个错误

但它返回的退出代码为1(应为0)。我翻遍了原木,发现:

生成失败

但是输出中没有任何错误,也没有关于构建失败原因的线索


如何诊断这个问题?

嗯,我不能直接回答这个问题(如何诊断),但我还是设法诊断了这个问题

dotnet build
默认情况下为Windows环境创建工件。如果希望构建在Linux中工作,则必须在命令行参数中指定,例如

dotnet build -r linux-x64
因此,虽然编译工作正常,但它无法创建任何与Linux兼容的二进制文件

如何诊断此问题


添加
-bl
参数以生成
msbuild.binlog
(或使用
-bl:/path/to/build.binlog
)文件,您可以稍后使用来分析该文件,以查看故障源并尝试更好地理解问题。

“默认情况下,dotnet build会为Windows环境创建构件。”听起来根本不正确。我怀疑您的一个项目文件正在显式设置Windows运行时id,从而覆盖linux上默认的linux-x64。