5
votes

Is there a difference between a strongly signed and a strongly named .NET assembly?

If yes, how can I determine whether a assembly is strongly signed using Visual Studio (I know how check if it is strongly named)?

Thanks for your help

EDIT

Background: In the book WiX: A Developer's Guide to Windows Installer XML is says you need to have a strongly-signed assembly in order to install it into the GAC.

So what do I need to install an assembly in the GAC: strong name or signed assembly?

2
There is no strongly signed. There is only signed and strongly named.Aliostad
@Allostad: So this seems to be a mistake in my reference (see edit)?nabulke

2 Answers

5
votes

Signing an assembly makes it strongly named. See Strong-named assemblies.

To be able to instal it into the GAC, an assembly needs to be strong-named and, therefor, signed.

3
votes

There is no strongly signed. There is only signed and strongly named.

In order to find out if it is signed on not (i.e. strongly named or not), open it with ildasm.exe and click manifest on the tree and look for public key token. if there is one then it is signed.

For example, opening castle.core.dll shows this (proving it is strongly named):

 .publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00   // .$..............
                00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00   // .$..RSA1........
                77 F5 E8 70 30 DA DC CC E6 90 2C 6A DA B7 A9 87   // w..p0.....,j....
                BD 69 CB 58 19 99 15 31 F5 60 78 5E AC FC 89 B6   // .i.X...1.`x^....
                FC DD F6 BB 2A 00 74 3A 71 94 E4 54 C0 27 34 47   // ....*.t:q..T.'4G
                FC 6E EC 36 47 4B A8 E5 A3 82 31 47 D2 14 29 8E   // .n.6GK....1G..).
                4F 9A 63 1B 1A FE E1 A5 1F FE AE 46 72 D4 98 F1   // O.c........Fr...
                4B 00 0E 3D 32 14 53 CD D8 AC 06 4D E7 E1 CF 4D   // K..=2.S....M...M
                22 2B 7E 81 F5 4D 4F D4 67 25 37 0D 70 2A 05 B4   // "+~..MO.g%7.p*..
                87 38 CC 29 D0 92 28 F1 AA 72 2A E1 A9 CA 02 FB ) // .8.)..(..r*.....
  .hash algorithm 0x00008004
  .ver 2:5:1:0
}