Dot-Net

簽署 F# 程序集

  • June 7, 2015

我在嘗試簽署 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 文件位於儲存庫之外,並將其作為參數傳遞給腳本。

引用自:https://stackoverflow.com/questions/30673025