我从 GitHub 下载了最新的 DotNetOpenAuth 代码,但最初构建失败。我通过运行以下命令解决了这个问题:
sn -Vr *,2780ccd10d57b246
在这里找到:
http://www.dotnetopenauth.net/developers/contributing/quickstart-environment/
我继续对项目 DotNetOpenAuth.AspNet 进行了一些修改。它编译得很好。然后我在示例下创建了一个 MVC 4 Web 项目来测试我的更改。再次编译解决方案。但是,一旦我单击调试,我就会得到 ASP.NET 黄屏死机,并出现以下错误:
无法加载文件或程序集“DotNetOpenAuth.AspNet”或其依赖项之一。无法验证强名称签名。程序集可能已被篡改,或者它被延迟签名但未使用正确的私钥完全签名。(来自 HRESULT 的异常:0x80131045)
MVC 4 项目是从空模板创建的,因此没有对 Microsoft.Web.WebPages.OAuth 的引用
我错过了什么?我完成了上面链接中的其余步骤:
sn -k mykeyfile.pfx
sn -i mykeyfile.pfx mykeycontainer
sn -p mykeyfile.pfx mykeyfile.pub
sn -q -t mykeyfile.pub
sn -Vr *,<YourPublicKeyTokenHere>
并且还修改了文件 \tools\DotNetOpenAuth.props,特别是行:27,29,30 与新值
26. <SignAssembly>true</SignAssembly>
27. <PublicKeyFile Condition="'$(PublicKeyFile)' == ''">$(ProjectRoot)src\official-build-key.pub</PublicKeyFile>
28. <AssemblyOriginatorKeyFile Condition="'$(AssemblyOriginatorKeyFile)' == ''">$(PublicKeyFile)</AssemblyOriginatorKeyFile>
29. <KeyPairContainer Condition="'$(KeyPairContainer)' == ''">DotNetOpenAuth</KeyPairContainer>
30. <PublicKeyToken>2780ccd10d57b246</PublicKeyToken>
31. <DelaySign>true</DelaySign>
32. <SignedSubPath>signed\</SignedSubPath>