G
Guest
Since I started using .NET I never thought I would say these words, but I almost miss DLL Hell, because I'm having even more trouble with Assembly Hell
Here's the scenario... I have three classesâ€
Class A has no references other than system assemblie
Class B references Class
Class C references both Class A and Class B.
We originally ran into problems when we were not using strong names, and were "auto-incrementing" build versions. This caused the classic “Unable to copy Class A in Class C because Class A is being used by Class B†error. Since then we have had much better luck since we use specific version numbers for our strong named dll’s and have them registered in the GAC
The new problems/questions that we now haveâ€
1.) How do you consistently debug a GAC assembly? Sometimes the GAC class will come right up even if you didn’t ask it too while debugging. Other times even adding a test project to the same solution won’t allow you to debug it
2.) We continually have the problem of the Reference Path (Under project Properties) becoming populated with older reference paths. After clearing these out, things seem to work better, but somehow, the old references start creeping in again
3.) In many cases, fixing a bug in a Shared GAC assembly requires us to recompile every class and project that reference that assembly, even if the interface hasn’t changed and we use the exact same version number. We have tried incrementing the version number, but even that doesn’t allow the existing classes to recognize the new shared GAC dll. Is there a best practice document that I’m missing on how to “truly†share .NET assemblies
Any assistance or insight on this would be greatly appreciated. How do others get shared class libraries to work? The environment we work is not very static, and full rebuilds of everything will not be possible once code is in production
Thanks in advance
Here's the scenario... I have three classesâ€
Class A has no references other than system assemblie
Class B references Class
Class C references both Class A and Class B.
We originally ran into problems when we were not using strong names, and were "auto-incrementing" build versions. This caused the classic “Unable to copy Class A in Class C because Class A is being used by Class B†error. Since then we have had much better luck since we use specific version numbers for our strong named dll’s and have them registered in the GAC
The new problems/questions that we now haveâ€
1.) How do you consistently debug a GAC assembly? Sometimes the GAC class will come right up even if you didn’t ask it too while debugging. Other times even adding a test project to the same solution won’t allow you to debug it
2.) We continually have the problem of the Reference Path (Under project Properties) becoming populated with older reference paths. After clearing these out, things seem to work better, but somehow, the old references start creeping in again
3.) In many cases, fixing a bug in a Shared GAC assembly requires us to recompile every class and project that reference that assembly, even if the interface hasn’t changed and we use the exact same version number. We have tried incrementing the version number, but even that doesn’t allow the existing classes to recognize the new shared GAC dll. Is there a best practice document that I’m missing on how to “truly†share .NET assemblies
Any assistance or insight on this would be greatly appreciated. How do others get shared class libraries to work? The environment we work is not very static, and full rebuilds of everything will not be possible once code is in production
Thanks in advance