-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MonoGame Pipeline Tool Custom Processor bug #6443
Comments
Seems like your assembly is dependent on another assembly thats next to it, hmm... I'm looking into fixing this now. |
If you have a moment of time, please try Pipeline Tool from: http://teamcity.monogame.net/repository/download/MonoGame_PackagingWindows/71511:id/MonoGameSetup.exe?guest=1 |
Thanks @cra0zy. You are correct that the assembly is dependent on another assembly in the same directory it lives in. |
Fixed in #6450! |
@Jjagg You don't need to mention that it was fixed in a PR as GitHub already said it. Also on a related note, don't use rebase and merge unless you have to, stuff just gets more messy with who did what: |
*Squash and merge |
I refer to the PR in a comment so there's a link to it. You linked to this issue in a commit, not in the PR itself. |
Hello, I still have the bug on MacOs, using the latest Monogame & Content Pipeline version on TeamCity (3.8.0.76). I attached a minimal project that leads to the error.
|
That error log has nothing to do with this error from what I can see, open up a separate issue about it. |
Am I seeing the same issue here? This is when trying to reference the DataTypes.dll in the Content Pipeline tool that comes with the latest GeonBit.UI nuget. Visual Studio Enterprise 15.9.3 The Content Pipeline tool crashes with the following: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. |
@rmhopkins I have the same issue, Have you find a solution? |
@Sebastian506563 |
@rmhopkins Could you please provide a sample working project with XML import, please? I'm still struggling to get it to work. Even a very simple project would help me a lot. |
Right now, I can get XML importer to work only with Monogame 3.6. So, each time I modify an XML file, I have to install Monogame 3.6 in order to generate the XNB files and then install the last version of Monogame to start the game. I could stay on Monogame 3.6 but there is a bug with the fonts. |
I have an issue with MonoGame Pipeline Tool 3.7.0.1708 where my custom processor project is no longer accepted by the pipeline tool and it gives a "Invalid / Missing Processor" where it used to be assigned.
Doing some code digging, it looks like it occurred due to commit #6202, where the following code is throwing an exception (which is swallowed) in the file PipelineTypes.cs:
Looking at the previous code, it used to be
var a = Assembly.LoadFrom(path);
Fishing in stackoverflow it seems there are subtle differences between
Assembly.Load
andAssembly.LoadFrom
I don't fully understand what's going on, however changing this line back makes the pipeline recognize my project again.
FYI, the exception that got thrown is:
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
What version of MonoGame does the bug occur on:
What operating system are you using:
EDIT:
Looking a bit more carefully at #6202, I see the point is so the custom pipeline dll isn't locked by the pipeline tool, which is why Assembly.Load is used instead of Assembly.LoadFrom.
It seems the issue with Assembly.Load(byte[]) is that it can't locate the dependent libraries because it no longer knows its location of itself so the app only looks in the pipeline app's directory?
In any case, changing the code to include AppDomain.CurrentDomain.AssemblyResolve & loading dependencies:
I'm not an expert in this area so I don't know if assuming dependent dlls being in the same folder as the desired assembly is enough (it is sufficient for my project...).
Furthermore, PropertyGridTable.Update() needed to be changed from
drawable.Invalidate();
to
Application.Instance.Invoke(() => drawable.Invalidate());
because when the file change detection occurs, it doesn't seem to be on the main UI thread and crashes the pipeline app.
The text was updated successfully, but these errors were encountered: