Hi
I've got a solution implementing functions for various types of projects (iOS, Android, UWP) with multiple binding objects.
The criteria is:
We have implemented connections with various devices which have different versions. Each project can implement different version for a device and therefor we have a binding library for each part (plugin)
Then we have a factory for each, e.g. for iOS, where we have few plugins that can be selected from. When building the iOS app however we get an error because there can only be one instance of a library of the same type.
Isn't it possible to have multiple versions? Since they are all in a separate namespace
Plugin 1
v1.plugin.iOS.Project;
v1.plugin.Droid.Project;
v1.plugin.BindingLibrary.iOS; (Device v1)
v1.plugin.BindingLibrary.Droid
Plugin 2
v2.plugin.iOS.Project;
v2.plugin.Droid.Project;
v2.plugin.BindingLibrary.iOS; (Device v2)
v2.plugin.BindingLibrary.Droid
In this setup Plugin 1 is bound to use v1 of the same device Plugin 2 is using, but Plugin 2 uses version 2, which is crucial for solution the setup.
The error when building the iOS project and loading to a tablet:
MTOUCH : error MT4116: Could not register the assembly 'Binding1': error MT4118: Cannot register two managed types ('Binding1.iBPBitmapContext, Binding1' and 'Binding2.iBPBitmapContext, Binding2') with the same native name ('iBPBitmapContext').
Answers
Could someone please answer if this is possible. Also if the description is not good enough.
We are in trouble when using two libraries for iOS in different projects within the same solution, but everything works for Android, with the same setup.
Is the namespace difference not sufficient?
I had similar error and fixed it by unloading project, deleting the bin/obj folders. Rebuilding project, then I got a ton of errors. Close and restarted VS and rebuilt with no issues.