2013-05-08 22 views
8

Visual Studio 2012 SDK'sindeki varsayılan VSPackage şablonu, güçlü adlandırma kullanan bir proje oluşturur. Güçlü adlandırma geçişlidirVisual Studio Extensions'ın (VSIX) güçlü olması gerekir mi?

için, bu da adlandırılan güçlü olması gereken herhangi bir referanslar I eklemek (örneğin, aynı çözelti içinde bir proje, veya bir üçüncü şahıs bağımlılık) anlamına gelir. Rahat güçlü adlandırma üçüncü taraf bağımlılıkları hissetmiyorum yana

, benim VSIX güçlü adlandırmayı kaldırmak tercih ederim.

Bunu yapmanın dezavantajları nelerdir? Zaten VSIX-görevlendirilebilirler ve GAC şey gerekmiyorsa

+0

Güçlü adlandırma, VSIX'imden kaldırdığımda, Visual Studio'da uzantı dağılmıyor (görünmüyor). Visual Studio 2015 kullanıyorum. –

cevap

4

, o zaman hiç, Visual Studio Eğer güçlü ismi imzalanmış olan hiçbir gerekliliğini ortaya koymuştur. Şablon sihirbazlarının güçlü ad imzalaması gerektirdiğine inanıyorum, ancak sadece GAC'ye yüklenmesi gerektiğinden.

İstediğin birkaç nedeni düşünebilirim: Paketiniz başka uzantıların tükettiği bir genel API'yi ortaya çıkarırsa, genel API'nizi kullanan diğer insanlar gibi ortak bir DLL'ye başvuruyor olabilirsiniz. Ortak arabirimi ikili olarak imzalamak isteyebilirsiniz ve projelerinizin nasıl yapılandırıldığına bağlı olarak, güçlü ad imzalamanız gerekebilir. Eğer güçlü isim işaretini olmasaydı

Ayrıca, başka uzantılı bir ad çarpışma riski yok. "Package.dll" adlı bir DLL oluşturduysanız ve başka bir uzantı da yaptıysanız ve güçlü adlarınız ikili dosyalarınızı imzalamadıysa, CLR'nin burada biraz karışık olması olasıdır. Bu nedenle, güçlü ad imzalamadıysanız, derlemenizin adının bu riski önlemek için "benzersiz" olduğundan emin olun.

Bu, Roslyn dil hizmetlerini dahili olarak test ettiğimizde, tüm Roslyn bitlerini içeren bir VSIX kurarak bunu gerçekleştirir. Kaynak denetim geçmişini hızlı bir şekilde kazmak, Microsoft'un gönderim kodu sürecinin bir parçası olarak sonuçlanana kadar, ilk iki buçuk yıl boyunca paket ikili dosyalarımızı güçlü bir şekilde imzalamadığımızı ima eder.

+1

> Şablon sihirbazlarının güçlü ad imzalaması gerektirdiğine inanıyorum, ancak yalnızca GAC'ye yüklenmesi gerektiğinden. Bu yanlış. Güçlü olmaları gerekiyor, ancak GAC'de olmalarına gerek yok. – kzu