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.
A little nice snippet:

```
// Assembly is a System.Reflection.Assembly
public string GetAssemblyGUID(Assembly assembly)
{
    object[] objects = assembly.GetCustomAttributes(typeof(System.Runtime.InteropServices.GuidAttribute), false);
    if (objects.Length > 0)
        return ((System.Runtime.InteropServices.GuidAttribute)objects[0]).Value;
    else
        return null;
}

```

This will retrieve the GUID of the specified assembly. You can set your assembly's GUID in Project Properties. This holds true for class libraries and PEs.