Share via


檢測及重新簽署組件

更新:2007 年 11 月

如果您在組件中測試程式碼時需要收集程式碼涵蓋範圍資訊,首先必須檢測該組件。檢測的程序會將產生程式碼涵蓋範圍資訊的程式碼加入至組件中。如需檢測程式碼涵蓋範圍組件的詳細資訊,請參閱 HOW TO:取得程式碼涵蓋範圍資料

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

注意事項:

如需測試回合中發生的步驟的詳細資訊,請參閱測試部署概觀

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

已檢測的組件 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082' 強式名稱驗證失敗。請確認已在測試回合組態中,正確指定檢測之後要進行重新簽署的金鑰檔。

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

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

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

重新簽署組件

在測試回合組態編輯器的 [程式碼涵蓋範圍] 頁面中,您可以指定檢測後重新簽署的二進位金鑰檔。如果您要測試已完成簽署的多個組件,Visual Studio 會嘗試重新簽署所有以指定之金鑰檔簽署的強式名稱組件。

在測試回合組態編輯器中,您可以指定 Visual Studio 用於重新簽署強式名稱組件的金鑰檔。如需詳細資訊,請參閱 HOW TO:取得程式碼涵蓋範圍資料主題中的<重新簽署組件>程序。指定金鑰檔會新增重新簽署步驟至測試回合過程。Visual Studio 會自動判斷哪個組件必須以您指定的金鑰檔重新簽署,將重新簽署所有可以使用金鑰檔重新簽署的組件。

注意事項:

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

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

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

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

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

停用簽署驗證

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

SN -Vr <組件名稱>

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

注意事項:

如果您從遠端執行測試且必須停用簽署驗證,則必須在安裝中包含 SN.exe 命令並清除將在遠端電腦上執行的指令碼。

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

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

SN -Vu <組件名稱>

停用與重新啟用簽署驗證的建議作法是在指令碼中使用 SN.exe 命令。您可以在安裝指令碼中停用驗證,在清除指令碼中重新啟用驗證。

注意事項:

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

當您將 SN 命令放置在個別的指令碼檔中之後,請在測試回合組態編輯器的 [安裝和清除指令碼] 頁面中指定指令碼檔。如需詳細資訊,請參閱 HOW TO:指定測試回合組態。如需測試回合中這些步驟及其他步驟順序的詳細資訊,請參閱測試部署概觀

請參閱

工作

HOW TO:指定測試回合組態

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

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

概念

測試部署概觀

強式名稱的組件

參考

強式名稱工具 (Sn.exe)