Sprechen Sie über starke Benennung oder über Authenticode-Signaturen? Das Problem mit den letzteren ist, wenn die authenticode-signierte Assembly geladen wird, .NET validiert das Zertifikat und in einigen Konfigurationen (zB wenn OCSP überprüft werden muss und es nicht erreichbar ist), kann dies Dutzende von Sekunden dauern. Wir mussten damit aufhören, unsere Assemblys mit authenticode und X.509-Zertifikaten zu signieren. Ein weiterer Nachteil ist, dass, wenn die signierte Assembly von Malware in irgendeiner Weise verwendet wird, einige nicht kompetente Möchtegern-Spezialisten in Antiviren-Unternehmen (a) die Assembly als Malware markieren und (b) was schlimmer ist, beschweren an die Zertifizierungsstelle, die Ihr Codesignaturzertifikat ausgestellt hat, und das Zertifikat wird widerrufen.
.NET starke Benennung (mit einem Schlüsselpaar ohne Zertifikat) ist mehr oder weniger Ihr Privatgeschäft.
Update: Authenticode wird normalerweise auf Dateien im PE-Format (EXE und DLL), SYS und CAB angewendet. strong-naming ist reine .NET-Technik.
Die Warnmeldung spricht über Authenticode-Signatur. Das Signieren des Installers ist notwendig (das ist sicher) und reicht aus, um die Nachricht loszuwerden, es sei denn Systemrichtlinien sind so eingestellt, dass nur signierte Anwendungen ausgeführt werden können (in diesem Fall muss auch die EXE Ihrer Anwendung signiert werden).
@EugeneMayevskiEldos: Danke. Ähm, ich bin mir nicht sicher - der Unterschied war mir nicht bewusst. Ich versuche nur, dass meine Anwendung installiert/ausgeführt wird, ohne dass die Warnung "Diese Anwendung ist nicht signiert" ausgelöst wird. –
Vielleicht sollte ich nur das Installationsprogramm und nicht die DLLs selbst unterschreiben? –
Ein Update hinzugefügt, um Ihre Fragen zu beantworten –