Question: In one of my apps I must distinguish my own included addins from others' addins.  

They are signed with different keys each and so is the host app. 

Is there any way to distinguish my assemblies from others' assemblies? (Possibly with the help of the signing key)

Answer: 
If all your assemblies are signed you can use either `GetPublicKey()` or `GetPublicKeyToken()`

```
 Assembly a =...
 a.GetName().GetPublicKeyToken();

 Assembly a =...
 a.GetName().GetPublicKey();

```

and would be more convenient than keeping list of GUID and would work with future assemblies too.
You can check the loaded assembly public key token against the list that is stored in the container assembly.

<http://blogs.msdn.com/b/miah/archive/2008/02/19/visual-studio-tip-get-public-key-token-for-a-stong-named-assembly.aspx>

Or just simply store the full names of the assemblies like this:

```
var assembly = typeof (string).Assembly;

var myAssemblies = new HashSet<string>
{
 "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
};

Assert.IsTrue(myAssemblies.Contains(assembly.FullName));

```

Also you can check egainst the tokens, using GetPublicKeyToken and BitConverter

```
var assembly = typeof(string).Assembly;

var token = BitConverter.ToString(assembly.GetName().GetPublicKeyToken()).Replace("-","").ToLowerInvariant();

var expectedToken = "b77a5c561934e089";

Assert.AreEqual(expectedToken, token);

```