8

GitHubから最新のDotNetOpenAuthコードをダウンロードしましたが、最初はビルドに失敗しました。次のコマンドを実行して問題を修正しました。

sn -Vr *,2780ccd10d57b246

ここで見つかりました:

http://www.dotnetopenauth.net/developers/contributing/quickstart-environment/

私は先に進み、プロジェクトDotNetOpenAuth.AspNetにいくつかの変更を加えました。それはうまくコンパイルされました。次に、サンプルの下にMVC 4 Webプロジェクトを作成して、変更をテストしました。ソリューションは再びコンパイルされました。ただし、デバッグをクリックするとすぐに、ASP.NETの黄色い画面が表示され、次のエラーが表示されます。

ファイルまたはアセンブリ'DotNetOpenAuth.AspNet'またはその依存関係の1つを読み込めませんでした。強力な名前の署名を確認できませんでした。アセンブリが改ざんされているか、遅延署名されているが正しい秘密鍵で完全に署名されていない可能性があります。(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>
4

1 に答える 1

6

props ファイルを変更する必要はありません。この問題は、64 ビット マシンを使用している可能性が高く、実行したsnコマンドは 32 ビット レジストリにのみ影響を与えました。64 ビット レジストリで Web サイトを実行しているため、実行時に失敗します。これには、スキップ検証エントリが含まれていません。

これを行う「正しい」方法は、64 ビットの Windows SDK をインストールして、64 ビットの sn.exe を取得し、そのコマンドも実行することです。ただし、これが迅速かつ簡単な方法です。

reg キーの値を確認します。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,2780ccd10d57b246

そのキーをコピーして

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,2780ccd10d57b246

次に、関連するすべてのプロセス (MSBuild.exe、devenv.exe、iis、WebDAV、または Web サイトをホストし、エラーを報告しているプロセス) を再起動します。それはあなたのために働き始めるはずです。

于 2012-10-26T03:38:58.757 に答える