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:

  1. Derlemeleri, bunları genel derleme önbelleğine (GAC) dağıtmak istiyorsanız.

  2. ClickOnce uygulama ve dağıtım bildirimleri. Visual Studio, bu uygulamalar için varsayılan olarak imzalamayı etkinleştirir.

  3. 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 hangi Project sürümünü Tasarım Aracı kullandığına bağlıdır.

Visual Studio 2022'deki .NET Core (ve .NET 5 ve üzeri) C# projeleri için:

  1. Proje özellikleri penceresini açın (Çözüm Gezgini proje düğümüne sağ tıklayın ve Özellikler'i seçin).
  2. 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.
  3. 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.

Visual Studio 2022 veya Visual Studio 2019'daki .NET Framework ve Visual Basic projeleri için:

  1. 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.
  2. Derlemeyi imzala onay kutusunu seçin.
  3. 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.