我管理一個開源項目,並想簽署項目二進制包中發佈的二進制文件。我使用Visual Studio csproj
和sln
文件來管理和構建我的項目,並將這些文件作爲項目源代碼包的一部分進行分發。管理開源項目的強名密鑰對的建議方式是什麼?
我該如何簽署生成的二進制文件,而不必分發snk
密鑰對文件?如果我使用Visual Studio簽署程序集,則每個項目文件現在都需要密鑰對的副本才能構建。即使密碼保護,我也不習慣分發密鑰對。
編輯:
另一個需要注意的是,有些組件在通過InternalsVisibleToAttribute
項目補助朋友訪問,並通過項目建設參考那些朋友。因此,在引用簽名程序集時,此類程序集需要使用強名稱。但是,如果密鑰對未分配,那麼最終用戶如何構建資源並維護項目關係?如果使用臨時密鑰對文件,那麼簽名程序集的公鑰令牌是否會發生更改,從而破壞了引用?
因爲我需要分配項目和解決方案文件,並且由於解決方案需要使用密鑰對(啓用簽名時),我還應該分發一個「虛擬」密鑰對,以便最終用戶可以構建而不必操作項目文件?簽入禁用簽名的項目文件似乎很麻煩,但每次發佈時都必須切換此設置。 – 2009-12-02 15:04:04
您可以執行以下操作:添加構建步驟,檢查.snk文件是否已經存在,並在需要時運行sn.exe生成新文件。然後它將直接從其他用戶的存儲庫中構建。 – sharptooth 2009-12-03 06:16:20