Bu bilgiler eşliğinde, şundan da kısaca bahsetmek gerekir. Bazı dll'ler, Visual Studio'yu ilk açtığımız andan itibaren kendiliğinden referans edilmiştir. Hatta biz onları references'dan silsek bile hata verilmez. Bunların dışında, kendi elle verdiğimiz dll'lerde mevcuttur. Tüm bu dll'ler .Net Framework içinde olabileceği gibi, daha sonradan oluşturulup, kullanılmak istenen dll'ler de olabilir.
İşte .Net dilinde, hazır framework içinde bulunan dll'lere Shared Assembly, Kendi yazdığımız, sonradan oluşturulmuş dll'lere de Private Assembly denir. Private Assembly'ler kullanıldığı yerin yanında olmak zorundalar. Shared Assembly'ler için böyle bir zorunluluk yoktur. Yukarıda dediğim gibi, references'dan silsek bile o dll'i hata çıkarmaz. Bu dll'lere örnek verecek olursak, en başta System.Data dll'i gelir.
Shared Assembly'lerin bulunduğu/saklandığı yere GAC denir. Açılımı Global Assembly Cache'dir.
Şimdi biz de kendi yazdığımız dll'i(Private Assembly) Shared Assembly haline getirelim. Bunun için yapmamız gereken ilk özellik, bu dll'e strong name (yani ona özgünlük sağlayacak) bir isim vermek olmalıdır. Bu isme de , projemize sağ tıklayıp properties dedikten sonra signing kısmından erişiyoruz.
Gördüğünüz gibi, mykey.snk isminde strong name oluşturdum.
Daha sonra da Visual Studio'nun Command Prompt ekranını açıp (Başlat-All Programs-Microsoft Visual Studio2010-Visual Studio Tools-Command Prompt) şu komutları yazmalıyız.