Müssen Visual Studio-Erweiterungen (VSIX) stark benannt werden?

8

Die Standard-VSPackage-Vorlage im Visual Studio 2012 SDK generiert ein Projekt, das starke Namen verwendet.

Da starke Namensgebung transitiv ist, bedeutet dies, dass alle Referenzen, die ich hinzufüge (z. B. ein anderes Projekt in derselben Lösung oder eine Abhängigkeit von Drittanbietern), ebenfalls stark benannt sein müssen.

Da ich nicht in der Lage bin, Abhängigkeiten von Drittanbietern stark zu benennen, möchte ich die starke Namensgebung von meinem VSIX entfernen.

Was sind die Nachteile, dies zu tun?

    
Roger Lipscombe 08.05.2013, 18:04
quelle

1 Antwort

4

Wenn Sie bereits VSIX-deployable sind und nichts im GAC benötigen, dann gibt es in Visual Studio keine Anforderung, dass Sie mit einem starken Namen signiert sind. Ich glaube, Vorlagen-Assistenten erfordern eine starke Namensunterschrift, aber nur, weil sie in den GAC installiert werden müssen.

Ich kann mir trotzdem einige Gründe vorstellen: Wenn Ihr Paket eine öffentliche API verfügbar macht, die andere Erweiterungen verbrauchen, verweisen Sie möglicherweise auf eine allgemeine DLL als die anderen Personen, die Ihre öffentliche API verwenden. Vielleicht möchten Sie die öffentliche Schnittstelle binär mit starkem Namen unterschreiben, und abhängig davon, wie Ihre Projekte eingerichtet sind, müssen Sie unter Umständen einen starken Namen unterschreiben.

Wenn Sie auch kein starkes Namensschild haben, riskieren Sie eine Namenskollision mit einer anderen Erweiterung. Wenn Sie eine DLL mit dem Namen "Package.dll" erstellt haben und eine andere Erweiterung dies ebenfalls getan hat, und keiner von Ihnen, der einen starken Namen hat, Ihre Binärdateien signierte, ist es möglich, dass die CLR hier ein wenig verwirrt wird. Wenn Sie also keine starke Namensunterschrift haben, stellen Sie sicher, dass Ihr Assemblyname "eindeutig genug" ist, um dieses Risiko zu vermeiden.

Wenn es darum geht, die Roslyn-Sprachdienste intern zu testen, tun wir dies einfach, indem wir einen VSIX installieren, der alle Roslyn-Bits enthält. Eine kurze Übersicht über die Quellcodeverwaltung impliziert, dass wir die Paketbinärdateien für die ersten anderthalb Jahre nicht mit einem starken Namen signiert haben, bis wir schließlich im Rahmen des Versandvorgangs Code von Microsoft erhalten mussten.

    
Jason Malinowski 08.05.2013, 23:44
quelle

Tags und Links