为什么我的强化名称验证无法进行汇编?
这是一个c ++ \ cli dll。我们设置使用我们的强键 - 我们用于所有项目的键。
sn -T example.dll
给我们
Public key token is ...
(与我们所有的dll相同)
但是当我们跑步时
sn -vf example.dll
我们得到:
Failed to verify assembly -- Strong name validation failed for assembly ...
我应该寻找什么想法?这是在Visual Studio 2013中构建的,我们在项目属性页面中指定了强密钥名称。
更新 - 对Hans提出的问题的回答:
使用项目"属性页"设置密钥文件。在Visual Studio中。
KeyFile: $(SolutionDir)Keys\Ivara.snk
平台工具集是:Visual Studio 2013(v120)
对于清单问题 - 我不是100%肯定,而是从属性页面:
配置属性 - >清单工具 - >命令行给出:
/ verbose /out:".\x64\Debug\oqkern.dll.embed.manifest" / nologo"。\ x64 \ Debug \ oqkern.dll.embed.manifest.res"
汉斯'建议有效:
我将dll标记为延迟签名,我添加了一个帖子构建步骤来进行签名:
sn -R "$(TargetPath)" "$(SolutionDir)Keys\Ivara.snk"
之后:
C:\Development\Source\DotNet\bin\x64\Debug>sn -vf oqkern.dll
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.33440
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly 'oqkern.dll' is valid