2012-10-25 15 views
8

GitHubから最新のDotNetOpenAuthコードをダウンロードし、最初はビルドに失敗しました。私は、次を実行して、問題を修正:DotNetOpenAuthは変更後にコンパイルされますが、サンプルプロジェクトの実行中にランタイム例外がスローされます

sn -Vr *,2780ccd10d57b246 

はこちらをご覧ください:私は先に行って、プロジェクトDotNetOpenAuth.AspNetにいくつかの変更をした

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

。それはうまくコンパイルされました。次に、サンプルの下に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> 

をしても、\ツールが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> 

答えて

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サイトをホストしてエラーを報告しているものであれ)。それはあなたのために働くはずです。

+0

ありがとうございます!私はこれでしばらくの間苦労していました。 – epignosisx

+0

私は反対の状況がありました:sn.exeがHKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ StrongName \ Verification \にキーを追加しましたが、IIS7はHKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ StrongName \ Verification \の影響を受けました。答えをありがとう! –

+0

VS2015はx86またはx64 sn.exeを使用しますか?それにもかかわらず、それはエラーを与えるので。しかし、レジストリの調整はうまくいきます。 – Legends

関連する問題