Derleme ve bildirim imzalamayı yönetme
Tanımlayıcı ad imzalama, yazılım bileşenine genel olarak benzersiz bir kimlik sağlar. Tanımlayıcı adlar, derlemenin başka biri tarafından yanıltılamayacağını garanti etmek ve bileşen bağımlılıklarının ve yapılandırma deyimlerinin doğru bileşen ve bileşen sürümüyle eşlenmiş olduğundan emin olmak için kullanılır.
Tanımlayıcı ad, derlemenin kimliğinden (basit metin adı, sürüm numarası ve kültür bilgileri) ve bir ortak anahtar belirteci ile dijital imzadan oluşur.
Visual Basic ve C# projelerinde derlemeleri imzalama hakkında bilgi için bkz . Tanımlayıcı adlandırılmış derlemeler oluşturma ve kullanma.
C++ projelerinde derlemeleri imzalama hakkında bilgi için bkz . Tanımlayıcı adlandırılmış derlemeler (C++/CLI).
Not
Tanımlayıcı ad imzalama, derlemenin tersine mühendisliğine karşı koruma sağlamaz. Tersine mühendislikten korunmak için bkz . Dotfuscator Community.
Varlık türleri ve imzalama
.NET derlemelerini ve uygulama bildirimlerini imzalayabilirsiniz:
Yürütülebilir Dosyalar (.exe)
Uygulama bildirimleri (.exe.manifest)
Dağıtım bildirimleri (.application)
Paylaşılan bileşen derlemeleri (.dll)
Aşağıdaki varlık türlerini imzalayın:
Derlemeleri, bunları genel derleme önbelleğine (GAC) dağıtmak istiyorsanız.
ClickOnce uygulama ve dağıtım bildirimleri. Visual Studio, bu uygulamalar için varsayılan olarak imzalamayı etkinleştirir.
COM birlikte çalışabilirliği için kullanılan birincil birlikte çalışma derlemeleri. TLBIMP yardımcı programı, BIR COM türü kitaplığından birincil birlikte çalışma derlemesi oluştururken tanımlayıcı adlandırmayı zorlar.
Genel olarak yürütülebilir dosyaları imzalamamalısınız. Kesin olarak adlandırılmış bir bileşen, uygulamayla dağıtılan kesin olarak adlandırılmış olmayan bir bileşene başvuramaz. Visual Studio uygulama yürütülebilir dosyaları imzalamaz, bunun yerine zayıf adlandırılmış yürütülebilir dosyayı işaret eden uygulama bildirimini imzalar. İmzalama bağımlılıkları yönetmeyi zorlaştırabileceğinden, uygulamanıza özel olan bileşenleri imzalamaktan kaçının.
Visual Studio'da bir derlemeyi imzalama
Bir derlemeyi imzalama yordamı, projenizin Project Designer'ın hangi sürümünü kullandığına bağlıdır.
Visual Studio 2022'deki .NET Core (ve .NET 5 ve üzeri) C# projeleri için:
- Proje özellikleri penceresini açın (Çözüm Gezgini proje düğümüne sağ tıklayın ve Özellikler'i seçin).
- Derleme'nin altında Güçlü adlandırma'yı bulun ve Derlemeyi imzala onay kutusunu seçin. Kutuyu işaretlediğinizde anahtar dosyası ve gecikmeli imzalama için ek seçenekler görüntülenir.
- Bir anahtar dosyası belirtin.
Anahtar dosyanız yoksa, komut satırını kullanarak bir .snk
dosya oluşturabilirsiniz. Ayrıca, Yayımlama işlemini kullanarak bir .pfx
dosyada sertifika kullanabilir veya oluşturabilirsiniz. İmza bildirimleri adımında, yalnızca geliştirme ve test sırasında kullanmak üzere bir test sertifikası oluşturabilir veya üretim için BT departmanınız veya yetkili bir kaynak tarafından verilen bir sertifikayı kullanabilirsiniz. Bkz . ClickOnce ile .NET Windows Masaüstü uygulaması dağıtma.
Visual Studio 2022 veya Visual Studio 2019'daki .NET Framework ve Visual Basic projeleri için:
- Proje özellikleri penceresinin İmzalama sekmesini açın (Çözüm Gezgini proje düğümüne sağ tıklayın ve Özellikler'i seçin). İmzalama sekmesini seçin.
- Derlemeyi imzala onay kutusunu seçin.
- Bir anahtar dosyası belirtin. Yeni bir anahtar dosyası oluşturmayı seçerseniz, yeni anahtar dosyaları her zaman .pfx biçiminde oluşturulur. Yeni dosya için bir ad ve parola gerekir.
Uyarı
Başka birinin kullanmasını önlemek için anahtar dosyanızı her zaman bir parolayla korumanız gerekir. Ayrıca sağlayıcıları veya sertifika depolarını kullanarak anahtarlarınızın güvenliğini sağlayabilirsiniz.
Önceden oluşturduğunuz bir anahtarı da işaret edebilirsiniz. Anahtar oluşturma hakkında daha fazla bilgi için bkz . Ortak-özel anahtar çifti oluşturma.
Yalnızca ortak anahtara erişiminiz varsa, anahtarı atamayı ertelemek için gecikmeli imzalamayı kullanabilirsiniz. Yalnızca gecikmeli oturum açma onay kutusunu seçerek gecikmeli imzalamayı etkinleştirirsiniz. Gecikmeli imzalı proje çalışmaz ve hata ayıklayamazsınız. Ancak, Sn.exe tanımlayıcı ad aracını kullanarak geliştirme sırasında doğrulamayı -Vr
atlayabilirsiniz.
bildirimleri imzalama hakkında bilgi için bkz . Nasıl yapılır: Uygulama ve dağıtım bildirimlerini imzalama.