2009-04-28 113 views
1

說我有幾個.NET程序集,並希望用強名稱來簽名每個程序集。一個密鑰對(一個.snk文件)是否足夠了,還是我需要爲每個程序集生成一對?我需要發佈(每個)密鑰對的公鑰嗎?我需要多少個.snk文件?

回答

4

您只需要一個.snk文件。

您不需要發佈公鑰。任何人都可以使用sn.exe和-p開關獲得公鑰。

+0

但他如何確保我發佈了該程序集? – sharptooth 2009-04-28 13:58:18

+0

它使用您的密鑰簽名的事實 - 引用程序集期望的同一個密鑰 - 將其驗證到程序集加載器。 – 2009-04-28 14:10:18

1

一個密鑰文件足以簽署多個相關的程序集。看看您的GAC。來自同一產品或平臺的組件通常都具有相同的密鑰。例如,許多Microsoft的.NET框架程序集共享相同的密鑰。

1

我們有(3).snk文件。

一個我們用來簽署我們的程序集,一個用於現場代碼生成(我們不再需要這樣做)的程序集,以及mono.snk來簽署Mono.Cecil和Mono.Security(這些在這裏構建與Microsoft的.NET一起使用)。