tags:

views:

107

answers:

4

Is it necessary to provide strong name to an assembly before putting it in GAC?

+3  A: 

Yes.

See the MSDN docs on it:

In order to install an assembly in the GAC, you must give the assembly a strong (that is, globally unique) name. Actually, it is not a name but a cryptographic hash key, or signature. The strong name ensures correct component versioning, which helps to prevent components that have the same name from conflicting with each other or being incorrectly used by a consuming application.

marc_s
A: 

Yes, it is required to give the assembly a strong name in order to install it in the GAC.

Fredrik Mörk
+1  A: 

Yes. Part of the reason for doing this is so that you can guarantee that nobody has installed a malicious piece of code that is mimicking a legitimate DLL. Imagine the havoc it somebody replaced System.Data with a piece of malware.

Pete OHanlon
The 'malicious code' problem is an extreme corner case. The purpose of Signing is much broader.
Henk Holterman
I agree - which is why I stated it was part of the reason (it's actually a very important reason).
Pete OHanlon
+2  A: 

I suggest you look here for a very good explanation about strong naming and signing. In the article it says you can delay the signing of an assembly and still register the assembly into the GAC.

Ruben