Unable to build UCC on Ubuntu

Vesuvian

New member
I am attempting to perform a headless build of a project using Opsive UCC on Ubuntu:

Code:
/opt/Unity3D-2021.2.7f1/Editor/Unity -projectPath ~/MyProject -buildWindows64Player ~/MyProject/Build/Windows64/MyProject.exe -batchmode -nographics -quit -logFile unity.log

The build fails with:

Code:
Aborting batchmode due to failure:
Scripts have compiler errors.

Trace/breakpoint trap

The relevant lines from the log file:

Code:
...

Start importing Assets/Packages/Opsive/Shared/Game/Opsive.Shared.Game.dll using Guid(e2a83a46964bc8748ade85db002f5784) Importer(-1,00000000000000000000000000000000)  -> (artifact id: '9053ff36f2c1e2a1775fa99d3812aa8b') in 0.001509 seconds 

...

##### ExitCode
1
##### Output
Assets/Packages/Opsive/Shared/Game/ObjectPool.cs(12,31): error CS0246: The type or namespace name 'ObjectPoolBase' could not be found (are you missing a using directive or an assembly reference?)
Assets/Packages/Opsive/Shared/Game/Scheduler.cs(12,30): error CS0246: The type or namespace name 'SchedulerBase' could not be found (are you missing a using directive or an assembly reference?)
Assets/Packages/Opsive/Shared/Input/PlayerInput.cs(9,25): error CS0234: The type or namespace name 'Events' does not exist in the namespace 'Opsive.Shared' (are you missing an assembly reference?)
Assets/Packages/Opsive/Shared/Input/PlayerInput.cs(14,25): error CS0234: The type or namespace name 'Utility' does not exist in the namespace 'Opsive.Shared' (are you missing an assembly reference?)

...

It looks like there are broken references from the Opsive scripts to the shared dlls.

The project builds absolutely fine on Windows:

Code:
"C:\Program Files\Unity\Hub\Editor\2021.2.7f1\Editor\Unity.exe" -projectPath C:\MyProject -buildWindows64Player C:\MyProject\Build\Windows64\MyProject.exe -batchmode -nographics -quit -logfile unity.log

How can I get my project to build on Ubuntu?

I have tried overriding the Opsive asmdefs to reference the .dlls directly and that did not work.

Do I need shared dlls built specifically for .Net Standard?
 
I would report this to Unity as it is platform specific and it should build without a problem. With that said, the shared files are on the downloads page.
 
Inspecting the .dlls a little closer it appears both UCC and Behaviour Designer are built targeting .Net Framework 4. I suspect building for .Net Standard 2 might solve the problem.
 
Apologies, it turns out I'm an idiot. My build machine was failing to pull my Git LFS objects, including dlls, but I guess Unity was still attempting to import because the .meta files are text.
 
Top