強式名稱版本控制

在 4_Shared 目錄的程式碼上建置時,是使用 5_Versioned 目錄的程式碼來分別建立二個版本的可共用元件,並且使用其他應用程式組態選項來示範如何讓應用程式執行。我們故意讓 2.0.1.0 版 Reverser.dll 中的方法,不相容於 2.0.0.0 中的相同方法,用戶端使用 2.0.0.0 版時可以順利呼叫這個方法,但卻無法呼叫後面的修訂內容。

為說明組件版本間的版本金鑰如何變更,您可以使用強式名稱工具 (Sn.exe) 產生新的金鑰組,並且將它放入檔案中:

sn –k orgVerKey.snk

有了新的私密金鑰後,您就可以編譯二個 2.0 版的元件,指定金鑰檔案以及要指派的版本號碼。 同樣的,您也可以指定下列屬性 (也是顯示 2.0.0.0 版的):

[assembly: System.Reflection.AssemblyVersion("2.0.0.0")]
[assembly: System.Reflection.AssemblyKeyFile("orgVerKey.snk")]

如果您在更新後的 Reverser.dll 檔案上再度執行 Ildasm.exe,即可根據不同的 .publickey 屬性 (因為您在 1.0.0.0 版中使用一組不同的金鑰組) 和更新後的 .ver 屬性 (2.0.0.0 或 2.0.1.0,視您查看何者而定),來驗證組件能否共用:

.assembly Reverser
{
  .custom instance void 
   ... // orgVerKey.snk
  .publickey = (...}
  .hash algorithm 0x00008004
  .ver 2:0:0:0
}

請參閱

繫結原則 | 封裝和部署摘要 | 附錄 A:其他封裝和部署資訊 | 附錄 B:封裝和部署工具