共用方式為


檢測及重新簽署組件

如果您要在測試組件程式碼時收集程式碼涵蓋範圍資料,Visual Studio 必須先「檢測」(Instrument) 該組件。 檢測程序會將程式碼加入至產生程式碼涵蓋範圍資料的組件。

但是如果您測試的組件是以強式名稱 (Strong Name) 簽署的,檢測所造成的程式碼修改會使其簽署失效。 因此在檢測步驟之後,Visual Studio 會立即自動嘗試重新簽署組件。

如果重新簽署成功,測試回合會結束,並產生正確的結果。 如果簽署不成功,則會產生類似下面的錯誤:

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.

若要修復此錯誤,請嘗試下列步驟:

  • 重新簽署組件。 如果您具有用於簽署組件的金鑰檔,就可以提供該金鑰檔讓 Visual Studio 可以自動重新簽署組件。

  • 停用簽署驗證。 您可以將用來測試組件之電腦上的簽署驗證予以停用, 此動作僅套用至所指定的組件。

重新簽署組件

在程式碼涵蓋範圍的診斷資料配接器測試設定中,可以指定金鑰檔,以在檢測後重新簽署二進位檔。 如果您要測試已完成簽署的多個組件,Visual Studio 會嘗試重新簽署所有以指定之金鑰檔簽署的強式名稱組件。

指定金鑰檔會將重新簽署步驟加入測試回合流程。 Visual Studio 會自動判斷哪個組件必須以您指定的金鑰檔重新簽署。 將重新簽署所有可以使用金鑰檔重新簽署的組件。

注意事項注意事項

僅能使用金鑰檔 (非金鑰名稱) 重新簽署組件。

在下列情況中,重新簽署組件會不完全或不成功:

  • 如果金鑰檔無法使用,則 Visual Studio 無法重新簽署組件。 您可以嘗試重新產生金鑰檔,然後再次嘗試重新簽署組件。

  • 如果金鑰檔有密碼保護,則重新簽署會失敗。

  • 每次測試回合僅支援一個金鑰檔。 以參考數個組件的測試回合為例。 這些組件中有些使用某金鑰檔簽署,而其他則使用另一金鑰檔簽署。 因為您只能選取一個金鑰檔,所以無法重新簽署需要另一個金鑰檔的組件,而且必須手動重新簽署這些組件。如果有些組件尚未簽署,則在測試回合層級會產生錯誤。 在此情況下,您可以按照停用簽署驗證中的說明,停用簽署驗證。

停用簽署驗證

如果重新簽署失敗,您可以選擇在測試回合期間停用此組件的簽署驗證。 例如,如果無法使用正確的金鑰檔,則重新簽署會失敗。 若要停用簽署驗證,請使用Sn.exe (強式名稱工具) 及 –Vr 選項,如下所示:

SN -Vr <組件名稱>

這將在您執行命令的電腦上,僅針對指定的組件停用強式名稱驗證。

您必須具有足夠權限才能執行此作業。

在測試回合完成後,請重新啟用簽署驗證。 若要進行這項作業,請使用 SN.exe 命令及 –Vu 選項,如下所示:

SN -Vu <組件名稱>

注意事項注意事項

請務必重新啟用簽署驗證。 如果尚未啟用簽署驗證,則會導致安全性問題。

請參閱

工作

HOW TO:使用自動化測試的測試設定進行程式碼涵蓋範圍的設定

HOW TO:取得程式碼涵蓋範圍資料

HOW TO:使用強式名稱簽署組件

參考

Sn.exe (強式名稱工具)

概念

強式名稱的組件

其他資源

建立測試設定以便從 Visual Studio 執行自動化的測試

將自動化測試的測試設定建立成測試計劃的一部分