K
Kevin Buchan
I have lived with the pain of maintaining Binary Compatibility with
COM for a long time. I *thought* I had read that this was largely a
thing of the past with .Net... as long as you didn't do anything
crazy.
Here's my situation:
I am writing an assembly with a single utility class that is used by
several of my applications. I would like to install this class into
the GAC rather than deploy to each application's directory.
I have everything installing into the GAC and life is good.
However, I discovered how convenient it would be if one of the methods
had an overload that took some additional, optional information. I
loaded up my solution, added the new method, changed the guts of the
old method to forward its parameters and to provide default values for
the new params in the new procedure and compiled.
What I *expected* was that I could delete the old class from the GAC,
overwrite the old DLL, and re-install it into the GAC. I thought,
since the old method had the same signature, that the app would just
keep working. Instead, it complained of not being able to find the
old DLL.
Can someone point me to an article that explains the correct way to
extend/enhance a DLL that is deployed into the GAC, please?
Surely I am not back to the world of super strict interface contracts
and having to version every DLL even if it can still be called the
same way it once could.
Thanks!
-Kevin Buchan
(e-mail address removed)
COM for a long time. I *thought* I had read that this was largely a
thing of the past with .Net... as long as you didn't do anything
crazy.
Here's my situation:
I am writing an assembly with a single utility class that is used by
several of my applications. I would like to install this class into
the GAC rather than deploy to each application's directory.
I have everything installing into the GAC and life is good.
However, I discovered how convenient it would be if one of the methods
had an overload that took some additional, optional information. I
loaded up my solution, added the new method, changed the guts of the
old method to forward its parameters and to provide default values for
the new params in the new procedure and compiled.
What I *expected* was that I could delete the old class from the GAC,
overwrite the old DLL, and re-install it into the GAC. I thought,
since the old method had the same signature, that the app would just
keep working. Instead, it complained of not being able to find the
old DLL.
Can someone point me to an article that explains the correct way to
extend/enhance a DLL that is deployed into the GAC, please?
Surely I am not back to the world of super strict interface contracts
and having to version every DLL even if it can still be called the
same way it once could.
Thanks!
-Kevin Buchan
(e-mail address removed)