Modules and dependent assemblies
TL;DR;
antony will ignore your assemblies, if we provide an other version of assemblies, antony uses itself
you might get a
MethodNotFoundExcepton
if you use methods, which aren’t present in our versions of your assembliesYou can disable the behavior passing
/skipAutomaticAssemblyBinding
as a parameter to the clientSo try avoid using special methods in common assemblies. Check agains the assemblies shipped with antony
The Problem
As you can extend antony’s desktop client and administator with custom modules, you usally will ship some assemblies with it. If you want to integrate into Zoom you might ship a special zoom assembly. This is no problem as long as no other module ships this dll too. This will also raise problems, if you ship assemblies antony already provides.
The Solution
In order to garantuee stablity of our antony client to our customers we will ignore the assemblies you ship, if they already in antonys scope.
For example antony ships the Newtonsoft.Json
assembly like nearly every other application in the world. The version we provide at this moment has the version 12.0.3. So if your module uses this assembly in version 13.0.1, you can develop and compile against this. You will also deploy the version 13 within your setup.
If you start antony with your shipped version 13.0.1 antony will detect your assembly and automatically create an assemblyRedirect from 13.0.1 to 12.0.3. If you relay on a new method within this assembly, you will get a MethodNotFoundException
.
Details
The assemblies and the dependent modules will be checked on every startup of the antony Client. If we detect changes we’ll generate a special SCOM.Groupware.exe.config
file containing the redirection. In the example above this will contain the entry below
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="13.0.1.0" newVersion="12.0.3.0" />
</dependentAssembly>
You might find more than this entry for the Newtonsoft.Json
assembly, if other modules than yours ship some other versions.
If you detect some changes to be applied in this file we’ll restart the whole client. The next run, we will not detect changes, so a restart is not neccessary.