AssemblyVersion - what if I want to enter DLL Hell?

V

vryhpy

The title is a joke, clearly I don't want DLL Hell. However, I am
curious if there is a way to follow the shared DLL model of the past
using the GAC.

Specificially -

I have ten seperate console applications, lets call them
'ConsoleApp1.exe' through 'ConsoleApp10.exe' which each depend on a
single class library named 'Utility.dll' which is strongly named and
installed in the GAC, v1.0.0.1

I regularly develop performance improvments to 'Utility.dll' which I
want all the console apps to benefit from. Over time, i develop
v1.0.0.2 , v1.0.0.3 all the way to v1.0.0.9 - each time I wish to
deploy the updated library and have all of the console apps use it.

Is there any way for me to install the new class library in the GAC
and have it used by all console apps WITHOUT using a Publisher Policy
File (i.e., is there any way to mark the new library as "compatible"
and therefor the console apps will use the newer version).

Thanks,
Maurice Flanagan
 
M

Mattias Sjögren

WITHOUT using a Publisher Policy File

Why not publisher policy?

(i.e., is there any way to mark the new library as "compatible"
and therefor the console apps will use the newer version).

That's exactly what publisher policy is for.



Mattias
 
E

Eric Newton

I dont believe so. The intention is to eliminate one aspect of DLL hell
where apps hooked onto newest or older DLLs hosting certain progids/com guid
class factories. This gave rise to unexpected results because testing hadnt
been done against these alternate versions and frequently applications
suffered subtle failures.

Enter .Net assemblies, specifically bound to a version of a DLL. Originally
the runtime would automatically use a newer build of an assembly (build is
the last number of the four octet version number), but that behavior seems
to have changed, even to my chagrin...

In essence, the publisher policy gives you what you need, just specify that
version 1.0.0.0 through version 1.0.65535.65535 of Utility.dll can be used
with ConsoleApp1-ConsoleAppN
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top