Monogame 和 Linux着色器在内容生成器编辑器中编译成功,但在 IDE 项目构建中失败

问题描述

这是我在 Monogame 论坛上发布的 post 的副本。我希望这里有人可以提供帮助。

我终于能够使用 Rider IDE 在 Linux 上构建我的 Visual-Studio 创建的游戏。我的着色器使用 InfinitespaceStudios.Pipeline 包成功编译,该包将着色器发送到远程 Windows 服务器进行编译。但是我不喜欢我的项目依赖于外部源,所以我一直试图让我的着色器在没有它的情况下编译。按照 Monogame“getting started”指南中的指示,我安装了 Wine。所以我现在已经删除了对 Infinitespace 的依赖。

现在,当我打开 Content Builder Editor 并构建着色器时,一切都会成功。没有警告也没有错误。但是,当我在 IDE (Rider) 中构建项目时,每个着色器都会出现一个非常无用的错误

BlackAndWhite.fx: [] Processor 'EffectProcessor' had unexpected failure!

随后出现此错误

MonoGame.Content.Builder.targets(90,5): [MSB3073] The command "/usr/bin/mono "/usr/lib/mono/xbuild/MonoGame/v3.0/Tools/MGCB.exe" /@:"/home/andy/Development/Point-and-Click-Adventure/PACE/Content/Content.mgcb" /platform:DesktopGL /outputDir:"/home/andy/Development/Point-and-Click-Adventure/PACAdventure/Content/bin/DesktopGL" /intermediateDir:"/home/andy/Development/Point-and-Click-Adventure/PACAdventure/Content/obj/DesktopGL" /quiet" exited with code 3.

有人知道是什么问题吗?

解决方法

我偶然发现的。我想要完成的另一项内务管理任务是将我的解决方案重建为 .NET Core 而不是 .NET Framework。由于我无法弄清楚着色器问题,因此我继续执行此重建任务。事实证明,当从我的 IDE 中构建时,这样做可以使着色器编译正常工作!我不知道为什么,但我们就是这样!