sorry for the weird title not sure how to describe the problem at best.
Okay so we have a program that’s connecting to an ERP system and to create the tenant and a session we use their DLLs.
So all we need already exists on the endusers system we do not make a local copy or publish any of those ERP system DLLs.
My colleague updated the ERP system on his machine to the newest version.
Everything is okay on his system, no code changes needed.
But if he makes a project build from his machine and we try to use it on a customer system without the newest version of the ERP system we get a DLL related exception.
It’s the same code, same project, no changes but if we swap only the Exe from my system (still older version of the ERP system) with the one from his system it works.
So the methods we directly use from the DLL must be the same since we had no changes in our code but it’s like there’s something changed in the DLLs code behind the methods we call and even though we use the DLL version from the enduser system it seems like the code is not just calling the method more like it’s reminding everything behind it and excpects the same.
My Exe works on old and new versions.
So for the moment if the want’s to create a new version and creates the installer i have to create the Exe file and give it to him.
Here’s the exception we get with his Exe file.
System.TypeLoadException: The type "Sagede.OfficeLine.Engine.MandantBase" in the assembly "Sagede.OfficeLine.Engine, Version=9.0.0.0, Culture=neutral, PublicKeyToken=4ad8971889b881a9" could not be loaded.
at maniacConnect.Models.Helper.SageConnectionHelper.CloseConnection()
at maniacConnect.ViewModels.MainMenu.MainMenuViewModel.LoadSettingsData()
Thank you!
We checked every reference we could find in out project to makes sure there’s nothing we overlooked.
Asked Google and AI for a solution but couldn’t find anything about a similar behaviour.
We would expect to get no DLL related exception since we use the DLL from the endusers machine.