Dot-Net
簽署 F# 程序集
我在嘗試簽署 F# 類庫項目時遇到了很多麻煩。首先,我嘗試了這個執行緒,使用AssemblyKeyFileAttribute但沒有成功。我還嘗試將標誌“–keyfile:keyfile.snk”添加到項目屬性(“建構”選項卡中的“其他標誌”欄位),但它也沒有用。我使用的是 Visual Studio 2013,它沒有像 C# 類庫項目那樣顯示“簽名”選項卡。
所有嘗試都會導致以下錯誤:
FSC:錯誤 FS2014:寫入二進制“obj\Release\ExcelFinancialFunctions.dll”時出現問題:對 StrongNameGetPublicKey 的呼叫失敗(值不在預期範圍內。)
我究竟做錯了什麼?
FWIW,這是我簽署ZeroToNine的方式:我沒有使用 Visual Studio,而是將其作為建構腳本的一部分。本質上,它是通過使用
AssemblyOriginatorKeyFileand完成的SignAssembly:MSBuild.exe /property:AssemblyOriginatorKeyFile=mykey.snk /property:SignAssembly=true您可以在 ZeroToNine 儲存庫中看到(幾乎)所有細節,包括我用於簽名的實際建構腳本。公共 repo 中唯一缺少的細節是實際的 .snk 文件,因為如果它是公開可用的,那麼擁有一個強名稱密鑰是沒有意義的。
以下是我從 Bash 呼叫建構腳本的方式:
build-release.sh ../ZeroToNine.snk如您所見,我的 .snk 文件位於儲存庫之外,並將其作為參數傳遞給腳本。