私はこのチュートリアルを段階的に追っています
そして、私は下にマークされた行で例外を取得しています
string url = "http://localhost:8080";
using (WebApp.Start(url)) //<------ error on this line
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
エラーメッセージ:
ファイルまたはアセンブリ「Microsoft.Owin.Security、Version = 2.0.1.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35」またはその依存関係の1つをロードできませんでした。検出されたアセンブリのマニフェスト定義は、アセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)
詳細:
私のプロジェクトソリューションでは、参照はNuGetのパッケージフォルダー内のdllを指しています
これは、NuGetによってApp.configファイルに追加されました
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
パッケージフォルダーで、packages\Microsoft.Owin.Security.2.0.0\lib\net45
、Microsoft.Owin.Security.dllのファイルバージョンは2.020911.395です。
はい、解決しました。
このコマンドを使用して、Microsoft.Owin.Securityパッケージを2.1.0にアップグレードする必要がありました
Install-Package Microsoft.Owin.Security -Version 2.1.0
App.configのバインディングを次のように変更します
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
私の場合、2つのプロジェクトがありました。
MyProj.MvcWeb
(Microsoft.Owin.Security 3.0.0
を参照したMVCアプリケーション)MyProj.Data.Entities
(Microsoft.Owin.Security 2.1.0
を参照したクラスライブラリ。これがどのように発生したかわからない)Microsoft.Owin.Security
プロジェクトで2.1.0
を3.0.0
からMyProj.Data.Entities
にアップグレードすると、問題が修正されました。
私はあなたのアイデアを受け取りました、あなたがした研究に感謝します、そして私はこのようにしました:
get-project PerfSurf | Update-Package Microsoft.Owin.Security
より簡単になり、これによりマニフェスト自体が更新されます。
これを無視(get-project PerfSurf
)一部。複数のテストプロジェクトがあり、それらをすべて更新したくないため、使用しています。
簡単です。web.configファイルに移動します。 Microsoft.Owin、Microsoft.Owin.Security.OAuth、Microsoft.Owin.Security.Cookies、Microsoft.Owin.Securityの「bindingRedirect」タグを次のように変更します。
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.1.0" />
これは動作する可能性があります。
私の場合、最初に「データベースの更新」中にコードにこのエラーがあります。私は「プロジェクトとしてstartaを設定する」をmigration.withプロジェクトに入れました
Web.config構成タグを変更して修正しました。
これから:
<configuration xmlns="http://schemas.Microsoft.com/.NetConfiguration/v2.0">
これに:
<configuration>
これがなぜ機能するのか分からない。
私の場合、それはIIS express issue。でした。デバッグをローカルIISに変更すると、エラーはなくなりました。
App.configをweb.configに名前変更するとうまくいきます。または、単にapp.configのコピーを作成してweb.configと呼びます
このアセンブリは要求されたものと一致しないため、このエラーが発生します。 GACのMicrosoft.Owin.Securityバージョンを確認してください。 here も参照してください