[Mono-list] Loading assemblies from a different places

Robert Jordan robertj at gmx.net
Thu Apr 7 09:40:30 EDT 2011


On 07.04.2011 14:57, Sermus wrote:
> :)
> I don't own those assemblies. In such circumstances it would be easier to
> rename the assembly file. But i can't do even this (due to the deployment
> restrictions of the whole system).

Renaming them on disk won't help either, because the assembly
name is set in stone in assembly's metadata.

But you still have some options:

- The fast and felonious ;)

Decompile the assemblies to IL, rename them/add a version attribute.
If you're EU citizen, this might be conformable to law, regardless
of the license agreement of these assemblies. IANAL, though ;)

- The "hamster wheel" enthusiast

Use distinct AppDomains per assembly and
implement a proxy that creates objects and invokes
methods in these AppDomains, if your types are neither
MarshalByRefObjects nor [Serializable].

- The "hacker"

Hack the runtime to assign those specific assemblies
a unique assembly identity (change their version based
on their path or something like that).

- The über-hacker

Provide a patch for the issue :)

Robert

>
> I know i'm asking an annoying question, too many restrictions, but if they
> were not here i'd already have a solution in my hands.
>
> Andrey.
>
> 2011/4/7 Robert Jordan [via Mono]<
> ml-node+3433212-806412664-228350 at n4.nabble.com>
>
>> On 07.04.2011 13:06, Sermus wrote:
>>
>>> Sigh...
>>> Again, you're right, but one quite common exception must be considered.
>> Two
>>> well designed components done by different people often become an ugly
>>> system after integrating with each other. This is a situation i'm in now.
>>
>>> I understand that complaining is the last thing which could make the
>>> differerence in this situation, so i'm asking a piece of advice.
>>> Is there any way to make it load these assemblies as separate entities?
>>> I could suck the files in as byte arrays and then create an assembly from
>>
>>> the byte array but in this situation they will lose their identity in
>> terms
>>> of their location. And they have to know where they're located.
>>
>> Give those assemblies different versions:
>>
>> [assembly: AssemblyVersion("1.0.0.0")]
>> [assembly: AssemblyVersion("1.1.0.0")]
>> [assembly: AssemblyVersion("1.2.0.0")]
>> ...
>>
>> Robert
>>
>> _______________________________________________
>> Mono-list maillist  -  [hidden email]<http://user/SendEmail.jtp?type=node&node=3433212&i=0&by-user=t>
>> http://lists.ximian.com/mailman/listinfo/mono-list
>>
>>
>> ------------------------------
>>   If you reply to this email, your message will be added to the discussion
>> below:
>>
>> http://mono.1490590.n4.nabble.com/Loading-assemblies-from-different-places-tp3432917p3433212.html
>>   To unsubscribe from Loading assemblies from different places, click here<http://mono.1490590.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3432917&code=YW5kcmV5LnYuZmlsaW1vbm92QGdtYWlsLmNvbXwzNDMyOTE3fDQ2MTg3Nzg3MQ==>.
>>
>>
>
>
> --
> View this message in context: http://mono.1490590.n4.nabble.com/Loading-assemblies-from-different-places-tp3432917p3433313.html
> Sent from the Mono - General mailing list archive at Nabble.com.
>
>
>
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list




More information about the Mono-list mailing list