Aracılığıyla paylaş


Derlemeleri İşaretleme ve Yeniden İmzalama

Bir derlemede, kodu test ederken kod kapsama verisi toplamak isterseniz Visual Studio öğesinin önce o derlemeyi işaretlemesi gerekir. Araçlar işlemi kod kapsamı verisi oluşturan derlemeye kod ekler.

Ancak test ettiğiniz derleme kesin bir ad ile imzalanmışsa, araçların neden olduğu kod değişikliği imzalamasını geçersiz kılar. Bu nedenle Visual Studio otomatik olarak derlemeyi alet yerleştirme adımından hemen sonra yeniden imzalamayı dener.

Yeniden imzalama başarılı olursa, test çalışması doğru olarak bitecek ve sonuç verecektir. İmzalama başarısız olursa, aşağıdaki gibi bir hata oluşturulur:

Strong name verification failed for the instrumented assembly 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082'. Please make sure that the correct key file for re-signing after instrumentation is specified in the test settings.

Bu hatayı düzeltmek için aşağıdakileri deneyin:

  • Derlemeyi tekrar imzalayın. Derleme imzalamak için kullanılan anahtar dosyası varsa, Visual Studio öğesinin derlemeyi otomatik olarak yeniden imzalaması için bu dosyayı sağlayabilirsiniz.

  • İmza Doğrulamayı Devre Dışı Bırakın. Derlemeyi test ettiğiniz bilgisayarda imza doğrulamayı devre dışı bırakabilirsiniz. Bu eylem yalnızca belirlediğiniz derlemelere uygulanır.

Derlemeyi tekrar imzalayın.

Kod kapsamının tanı verisi bağdaştırıcısının test ayarlarında, araçlandırmadan sonra ikili yeniden imzalama için anahtar dosya belirtebilirsiniz. İmzalanmış birden çok derleme sınıyorsanız Visual Studio belirttiğiniz anahtar dosyası ile imzalanan tüm tanımlayıcı adlı derlemeleri yeniden imzalamaya çalışacaktır.

Anahtar dosyasının belirtilmesi, test çalışması işlemine bir yeniden imzalama adımı ekler. Visual Studio belirttiğiniz anahtar dosyayı kullanarak hangi derlemelerin yeniden imzalanacağını otomatik olarak belirler. Bu anahtar dosyası kullanılarak yeniden imzalanabilecek tüm derlemeler yeniden imzalanacaktır.

Not

Derlemeler, bir anahtar adı kullanılarak değil yalnızca anahtar dosyası kullanılarak yeniden imzalanabilir.

Aşağıdaki durumlarda derlemelerin tekrar imzalanması eksik kalır ya da hiç gerçekleşmez:

  • Anahtar dosyası yoksa Visual Studio derlemeyi yeniden imzalayamaz. Anahtar dosyayı yeniden oluşturmayı ve sonra derlemeyi yeniden imzalamayı deneyebilirsiniz.

  • Anahtar dosyası parola korumalı ise, yeniden imzalama başarısız olur.

  • Test çalıştırması başına yalnızca bir anahtar dosya desteklenir. Örneğin, çeşitli derlemelere başvuran bir test çalışmasını ele alın. Bu derlemelerden bazıları bir anahtar dosyası kullanılarak imzalandı ve diğerleri farklı bir anahtar dosyası kullanılarak imzalandı. Yalnızca bir anahtar dosyası seçebildiğiniz için, diğer anahtar dosyasını gerektiren derlemeler yeniden imzalanmayacaktır ve el ile yeniden imzalanmaları gerekecektir. Bazı derlemeler imzalanmadan bırakılırsa, test çalıştırması düzeyinde bir hata oluşturulur. Bu durumda, İmza Doğrulamayı Devre Dışı Bırak'ta açıklandığı gibi imza doğrulamayı devre dışı bırakmak isteyebilirsiniz.

İmza Doğrulamayı Devre Dışı Bırakın

Yeniden imzalama başarısız olursa, bu derleme için imza doğrulamasını, testinizin çalışması süresince, devre dışı bırakmak için seçebilirsiniz. Örneğin, doğru anahtar dosyası kullanılabilir değilse yeniden imzalama başarısız olur. İmza doğrulamasını devre dışı bırakmak için burada gösterildiği gibi –Vr seçeneğine sahip Sn.exe (Güçlü adı araç) öğesini kullanın:

SN -Vr <derleme adı>

Bu, komutu çalıştırdığınız bilgisayarda, yalnızca belirtilen derleme için tanımlayıcı ad doğrulamasını devre dışı bırakır.

Bunu sadece yeterli izinleriniz varsa yapabilirsiniz.

Test çalıştırması tamamlandıktan sonra, imza doğrulamasını yeniden etkinleştirin. Bunu yapmak için burada gösterildiği gibi –Vu seçeneğini kullanarak SN.exe komutunu kullanın.

SN -Vu <derleme adı>

Not

İmza doğrulamayı yeniden etkinleştirmeniz önemlidir. İmza doğrulama devre dışı kalırsa, güvenlik sorunlarına neden olabilir.

Ayrıca bkz.

Görevler

Nasıl yapılır: Otomatikleştirilmiş Testler için Test Ayarlarını Kullanarak Kod Kapsamını Yapılandırma

Nasıl Yapılır: Kod kapsamı veri almak

Visual Studio üzerinden Otomatik Testleri Çalıştırmak için Test Ayarları Oluşturma

Test Planının Bir Parçası Olarak Otomatikleştirilmiş Testler için Test Ayarları Oluşturma

How to: Sign an Assembly with a Strong Name

Başvuru

Sn.exe (Güçlü adı araç)

Kavramlar

Strong-Named Assemblies