我有一个签名类库,我想通过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