
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi Autodesk community,
Long time lurker, first time poster here with EvolveLAB hoping for some insight on a weird Plugin-loading issue. I've been banging my head on this bug for near 4 weeks now, so any insight will be greatly appreciated!
Background:
This bug is in the Revit Plugin portion of our new, in-development v2.0 of our Helix product which allows SketchUp and Revit to synchronize BIM data (in real time now!). This version is a complete rebuild using a different architecture from the first version, leveraging modern web technologies to hack a 'Google docs'-like realtime collaboration experience into Revit, Sketchup, and potentially any other similar app with plugin support.
Context:
- Used to work in an earlier build, but no longer works
- This part of the codebase has not changed since it last worked
- First known change was installing Revit 2019 on test computer
- Was originally working on just 2020
- Have since tried uninstalling all versions except 2022; no change
- Have also tried compiling to libraries to .NET Framework 4.8
- Was originally compiling libraries to .NET Standard 2.0 (to facilitate reuse in .NET Core portions of the codebase)
- Main Revit Plugin POE dll was and still is compiled to .NET Framework 4.8
- Looks like it may be an issue with the JIT compiler or Linker?
- Problem might be Revit update based / perhaps not with the code itself?
Problem:
- When loading the Revit Plugin, it seems to load fine; until we call a method which contains a call to our in-house dependency injection library (EvolveLAB.Common.DependencyInjection.dll).
- The error thrown is “System.MissingMethodException” (Revit 2020)
- This exception is thrown before the compiler is able to hit a breakpoint which is in the same method, but before the line which throws the exception
- The Visual Studio debugger does properly attach to Revit before the Plugin tries to load
- The Visual Studio debugger does properly load debug metadata for the Plugin's libraries before this exception gets thrown
- This is what makes me think the issue occurs during Linking or JIT Compilation
Tried:
- Deleting all dlls on machine to make sure that the app does not somehow reference an old version from elsewhere.
- Decompiled the dll to see if the missing method is missing, and the method in the decompiled code is there.
- Decompiled using JetBrains' dotPeek (https://www.jetbrains.com/decompiler/)
- Tried building the addin again from scratch to see where exactly this problem is introduced
- Error we get in the rebuild process (Revit 2022):
- While decidedly different, I have a nagging suspicion that both issue have similar roots (dunno how/why though)
- Here are some the references that have given us other issues in the past:
- Microsoft.Extensions.DependecyInjections
- Microsoft.Extensions.DependecyInjections.Abstractions
- System.Threading.Tasks
- System.Threading.Tasks.Extensions
- Microsoft.Bcl.AsyncInterfaces
- QUESTION:
- Are there known issues of conflicts with a third party app loading the references above?
- If not, does anyone have experience getting Revit to find a method which it claims doesn't exist, but that dotPeek shows as there?
I'm currently looking into the GAC to see if maybe Windows has cached an old version of our DependencyInjection without my noticing, but that's quite a long shot...
Thanks in advance for help with this!
Solved! Go to Solution.