DynamoDS / DynamoRevit

Dynamo Libraries for Revit
https://dynamobim.org
342 stars 188 forks source link

Mismatch DLL between different Revit and Dynamo versions #2810

Closed NonicaTeam closed 2 years ago

NonicaTeam commented 2 years ago

If this issue is not a bug report or improvement request, please check the Dynamo forum, and start a thread there to discuss your issue.

Dynamo version

2.6.1.8786 and 2.12.0.5650

Revit version

Revit 2022 and 2021

Operating system

Windows 10

What did you do?

Our addin works perfectly but we have a dll mismatch when executing one button (running Dynamo in the background) it logs an API error in the journals of Revit. If the DLL compile in the Addin are DynamoCore 2.12, the errors appears in Revit 2021 with Dynamo 2.6. Instead if we use Dynamo 2.6 dlls to compile the addin the error appears in Revit 2022. How can we solve this issue as we look to have a clean journal file and readable for other apps?

What did you expect to see?

Jrn.RibbonEvent "Execute external command:CustomCtrl%CustomCtrl%CustomCtrl_%NonicaTab PRO%NonicaTab PRO%pullDownToolPlace1%COL SCHED ARROW CREATOR.dyn:NonicaPro.DYNrunner.Run1" ' 1:< ::64:: Delta VM: Avail -103 -> 134210408 MB, Used +5 -> 856 MB; RAM: Avail -4 -> 14485 MB, Used +16 -> 977 MB, Peak +18 -> 979 MB ' 1:< GUI Resource Usage GDI: Avail 9189, Used 811, User: Used 423 ' 1:< APISUCCESS { Registering Idling event by application NonicaPro (604b1552-f743-4959-8516-c256d1993674). } ' 0:< ::64:: Delta VM: Avail -46 -> 134210362 MB, Used +49 -> 905 MB, Peak +39 -> 953 MB; RAM: Avail +51 -> 14536 MB, Used +57 -> 1034 MB, Peak +102 -> 1082 MB ' 0:< GUI Resource Usage GDI: Avail 9195, Used 805, User: Used 421 ' 6.269448 1:<<<API External Command Time 'H 22-Mar-2022 15:13:24.745; 0:< Jrn.Data "APIStringStringMapJournalData" , 1, "Execution", "Errors Detected."

What did you see instead?

Jrn.RibbonEvent "Execute external command:CustomCtrl%CustomCtrl%CustomCtrl_%NonicaTab PRO%NonicaTab PRO%pullDownToolPlace4%JOINT CHANGER.dyn:NonicaPro.DYNrunner.Run4" ' 1:< API_ERROR { : Assembly version conflict in some references in NonicaPro.dll assembly 'Addin's module RevitAPI of version 22.0.0.0 conflicts with same preloaded module of version 21.0.0.0 'Addin's module RevitAPIUI of version 22.0.0.0 conflicts with same preloaded module of version 21.0.0.0 'Addin's module RestSharp of version 106.11.7.0 conflicts with same preloaded module of version 105.2.3.0 'Addin's module DynamoCore of version 2.12.0.5650 conflicts with same preloaded module of version 2.6.1.8786 'Addin's module DynamoUtilities of version 2.12.0.5650 conflicts with same preloaded module of version 2.6.1.8786 'Addin's module AdWindows of version 3.1.7.0 conflicts with same preloaded module of version 3.0.4.0 'Addin's module RevitNodes of version 2.3.0.8352 conflicts with same preloaded module of version 2.6.1.8850 'Addin's module DynamoRevitDS of version 2.12.0.5740 conflicts with same preloaded module of version 2.6.1.8850 'Addin's module ProtoCore of version 2.11.1.4675 conflicts with same preloaded module of version 2.6.1.8786 'Addin's module RevitServices of version 2.12.0.5740 conflicts with same preloaded module of version 2.6.1.8850 }

mjkkirschner commented 2 years ago

There are a few issues here - but they pretty much come down to the same thing. Revit ships different versions of Dynamo and DynamoRevit in different releases, and DynamoRevit references different versions of Dynamo.

Your addin references a different version, this is not necessarily a problem - but it's good information to know.

Same issue with the Revit API.

If you want to have the best guarantee of compatibility with Dynamo then target the lowest version you can, like 2.6.

There are other dynamic solutions floating around as well - but this is not a Revit/Dynamo problem, it's a .net ecosystem, fundamental plugin/addin architecture problem with no isolation (same process)

In the past, the way DynamoRevit dealt with this was to maintain separate versions for each release of Revit.

NonicaTeam commented 2 years ago

Thanks @mjkkirschner for your help! We really appreciate it. The Add In works perfectly indeed. But the version that is not referenced is always mismatching the other. For instance pointing DynamoCore.dll 2.6 will mismatch with v2.12. Yes, it is probably a good solution for us to have a different version of the AddIn for each version. Thanks