我有一個簽名類庫,我想通過sgen工具創建程序集。不過,我得到一個錯誤,當我嘗試運行以下命令:無法生成臨時類 - 簽署程序集時加密失敗
$ sgen.exe /a:testsign.dll /force /compiler:/keyfile:..\..\testsign.pfx /verbose /n
Error: Unable to generate a temporary class (result=1).
error CS1548: Cryptographic failure while signing assembly '[...path...]\TestSign.XmlSerializers.dll' -- 'Error signing assembly - - The parameter is incorrect. 'If you would like more help, please type "sgen /?".
我檢查其中指出
CS1548 occurs when assembly signing fails. This is usually due to an invalid key file name, an invalid key file path, or a corrupt key file.
不過,我剛剛創建的鍵上MSDN錯誤,路徑是正確的據我所知,Visual Studio 2010不會創建損壞的密鑰。
這個問題很容易重現。
- 使用代碼pasted here創建一個新的類庫。
- 創建兩個班,一個
class TestSigning
和一個class Model
- 去項目屬性>簽名,並檢查「登錄本次大會」
- 創建
- 打開Visual Studio命令提示符新的強名稱密鑰文件(2010年)
- 找到該DLL並運行
sgen /a:<dllname> [... as above ...]
我的猜測是有東西的密鑰文件的公鑰。但我找不到任何來源,我怎麼通知sgen
我用來保護密鑰文件的密碼。
我不知道如何着手。我在這裏看到的其他線程有相同的錯誤「標題」unable to generate temporary class
但不同的錯誤細節,其中沒有Cryptographic failure
(我發現)。
不工作:)同樣的問題持續存在@default – 2015-03-03 13:31:04
它3年前工作時,我張貼了這個答案。如果你有問題,我可以建議發佈一個新問題嗎? (如果你想要,你可以鏈接到這個問題,並解釋爲什麼它沒有幫助你,使它不作爲重複關閉) – Default 2015-03-03 13:47:44