无法在 Mono 上编译 MojoPortal:/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets(5,5):错误 MSB3073

Can't Compile MojoPortal on Mono: /usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets(5,5): Error MSB3073

我正在尝试在 Linux 上为 MySQL 为 Mono 编译 MojoPortal。我的目标是能够使用 Microsoft 技术在 Windows 和 Linux 服务器上创建 运行 的 Web 应用程序。 我完全知道 MojoPortal 多年来一直没有正式支持 Mono,但是由于某些...复杂的情况,我不能直接在 ASP.NET Mono 或 .NET Core 中构建我的应用程序。我也不能只用 PHP 或任何其他经证明可在两个平台上运行的服务器端技术来编写应用程序。

对于这个项目,我使用的是从官方 GitHub 存储库获得的最新稳定版 MojoPortal。

我已经修复了各种项目的大部分依赖项。当我尝试 运行 通常在调试模式下时,程序中似乎没有任何其他错误:

/usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets(5,5): Error MSB3073: The command "if "Debug" == "Release - SQLite" xcopy /s /y /d "/home/callum/Working/mojoportal/Web/data/sqlitedb/sqlite3.dll" "/home/callum/Working/mojoportal/Web/bin/"
if "Debug" == "Debug - SQLite" xcopy /s /y /d "/home/callum/Working/mojoportal/Web/data/sqlitedb/sqlite3.dll" "/home/callum/Working/mojoportal/Web/bin/"" exited with code 2. (MSB3073) (mojoPortal.Web)

看着它,它似乎在抱怨 SQLite 包,但我不想使用 SQLite;我要用MySQL!我一直在研究各种 MySQL 构建模式,但似乎没有任何效果。我该怎么办?

mojoPortal 不再支持 运行 on Linux w/ mono 并且已经好几年了。这并不意味着它不会工作,只是开发团队根本没有测试或针对 Mono。

确保您是针对 MySQL 数据层而不是 sqlite 层构建的。从那里开始,确保您没有将 sqlite3.dll 部署到您的服务器。可能是您正在针对 MySQL 数据层进行构建,但文件中包含 sqlite3.dll,因此 Mono 正在尝试 JIT 构建它。

希望这对您有所帮助,