MonoGame 3.8 prerelease packages are up on NuGet

So this means existing Portable projects won’t work if I upgrade to 3.8?

Yes, they will break, you’ll need to update them: https://github.com/harry-cpp/MonoGame/blob/newprojdocs/Documentation/setting_up_project/setting_up_project.md

1 Like

Sooooooooo, how long before that issue is fixed?

EDIT

VSCode support only?

It won’t ever be fixed as its not an issue. You can still setup the bait and switch, however you need to update your “PCL” project. Btw. the new templates already provide you with a new proper project.

I only wrote instructions for VS Code, you can do the same thing in any IDE.

2 Likes

Oh so there is a PCL, a new one?

MonoGame.Library.NetStandard.CSharp

Does this nuget package also include the mgcb editor or do we need to follow the https://docs.monogame.net/articles/tools/pipeline.html documentation?

You need to follow that doc to use the MGCB Editor.

All the nugets and dotnet tools are individual packages now: each platform’s Framework, the Content Pipeline, MGCB, the MGCB Task, and the MGCB Editor. So it should be super easy to swap in and out exactly what you need and install the tools using standard dotnet methods.

Thanks. I managed to install everything, although it’s not really yet pain free. I wanted to use the templates from the VS 2019 extension, but I can’t really update it because it says that it doesn’t find a stable package … so I needed to uninstal the installed packages and install only the new nuget.

Then I followed the documentation for the mgcb editor, but it has an issue. To register the mgcb, it’s not dotnet mgcb-editor --register, it’s mgcb-editor --register.

After that it worked well :slight_smile:

1 Like

@Jjagg, might need a correction in the docs ^
Also I noticed the docs don’t mention how to manually run the tool (mgcb-editor) without needing to register it.

I know the docs are on github, and I may have time to open a PR later today.

1 Like

Oops, my bad! PR is very welcome :slight_smile:

Any idea why I’m seeing this problem? I have a minimal test project that works, but a slightly more complex project is failing to build.

C:\Users\[redacted]\.nuget\packages\monogame.content.builder.task\3.8.0.1375-develop\build\MonoGame.Content.Builder.Task.targets(269,5): error MSB3075: The command "dotnet tool run mgcb /quiet /@:"[redacted]\Content\Content.mgcb" /platform:WindowsStoreApp /outputDir:"[redacted]/Content/bin/WindowsStoreApp/Content" /intermediateDir:"[redacted]/Content/obj/WindowsStoreApp/Content" /workingDir:"[redacted]/Content/"" exited with code 5. Please verify that you have sufficient rights to run this command.

I’m also getting errors like this:

error : Importer 'FbxImporter' had unexpected failure!

If I run mgcb-editor after installing it via dotnet, I can build the .mgcb file from UI editor.

When I run the failing mgcb command from above in a command line in the project directory, it fails on all of the models with this error:

error: Importer 'FbxImporter' had unexpected failure!
Assimp.AssimpException: Error loading unmanaged library from path: Assimp64.dll, see inner exception for details.
The specified module could not be found. (0x8007007E)
 ---> System.IO.FileNotFoundException: The specified module could not be found. (0x8007007E)
   --- End of inner exception stack trace ---
   at Assimp.Unmanaged.AssimpLibraryWindowsImplementation.NativeLoadLibrary(String path)
   at Assimp.Unmanaged.AssimpLibraryImplementation.LoadAssimpLibrary(String path)
   at Assimp.Unmanaged.AssimpLibrary.LoadLibrary()
   at Assimp.Unmanaged.AssimpLibrary.LoadIfNotLoaded()
   at Assimp.Unmanaged.AssimpLibrary.CreatePropertyStore()
   at Assimp.AssimpContext.CreateConfigs()
   at Assimp.AssimpContext.PrepareImport()
   at Assimp.AssimpContext.ImportFile(String file, PostProcessSteps postProcessFlags)
   at Microsoft.Xna.Framework.Content.Pipeline.OpenAssetImporter.Import(String filename, ContentImporterContext context) in C:\BuildAgents\MonoGameWin1\work\f7381a85a626990\MonoGame.Framework.Content.Pipeline\OpenAssetImporter.cs:line 291
   at Microsoft.Xna.Framework.Content.Pipeline.FbxImporter.Import(String filename, ContentImporterContext context) in C:\BuildAgents\MonoGameWin1\work\f7381a85a626990\MonoGame.Framework.Content.Pipeline\FbxImporter.cs:line 24
   at Microsoft.Xna.Framework.Content.Pipeline.ContentImporter`1.Microsoft.Xna.Framework.Content.Pipeline.IContentImporter.Import(String filename, ContentImporterContext context) in C:\BuildAgents\MonoGameWin1\work\f7381a85a626990\MonoGame.Framework.Content.Pipeline\ContentImporter.cs:line 45
   at MonoGame.Framework.Content.Pipeline.Builder.PipelineManager.ProcessContent(PipelineBuildEvent pipelineEvent) in C:\BuildAgents\MonoGameWin1\work\f7381a85a626990\MonoGame.Framework.Content.Pipeline\Builder\PipelineManager.cs:line 669

The proper tool appears to be installed in the project:

dotnet tool list --local
Package Id       Version                 Commands      Manifest                                                         
--------------------------------------------------------------------------------------------------------------------------
dotnet-mgcb      3.8.0.1375-develop      mgcb          [redacted]\.config\dotnet-tools.json

Maybe start a new thread for this so we can dive into it more.
Does your minimal test project have models that would use the FbxImporter?
When you build in the Editor, are you still building as for WindowsStoreApp?
It seems like it’s loading Assimp64.dll from the wrong path, but in my nuget cache I see the DLL right there alongside the app.

I realized after I posted that I should have just started a new thread. I’ve just done so and will follow up there.

WindowsDX shouldn’t be targeting core 3.0, that is already out of support. It should be targeting 3.1 as it’s under long term support for the next 1.5 years. (well until .net 6 comes out)

It already is… I probably could have been more clear.

1 Like

I tried it on a Mac mini immediately after a clean installation of macOS 10.15.5 catalina.
I got two errors when compiling Content.mgcb with pipeline tools.

Instant solution (1)
I changed the file name.
Now everything works fine.

ln -s libassimp64.dylib libassimp.dylib

Instant solution (2)
I replaced it with freetype installed from homebrew.
Now everything works fine.

brew install freetype
mv libfreetype6.dylib libfreetype6.dylib.bak
ln -s /usr/local/lib/libfreetype.6.dylib libfreetype6.dylib
1 Like

Sup guys just a couple quick questions for those in the know - has the Microsoft.Xna.Framework.Input.KeyboardInput class deliberately been omitted from the Monogame.Framework.DesktopGL dll, only reason i ask is since the mg netstandard template includes the mg desktop GL framework by default; building a game for IOS and Android means “KeyboardInput” isnt accessible from the shared netstandard lib.

Alternatively I could reference the Monogame.Framework.Android (or IOS) dll which then leads me to my next question - what is the difference between the mg frameworks for Android and IOS

With monogame 3.8, i can compile effect files on mac!
The command line (dotnet tool run mgcb) works fine.

However, I cannot understand how to set the “MGFXC_WINE_PATH” environment variable in Visual Studio for Mac.

1 Like