web-dev-qa-db-ja.com

ファイルまたはアセンブリMicrosoft.Owin 3.0.0から3.0.1を読み込めませんでした

興味深い依存関係の問題...

VS2015.3、.NET45がMicrosoft.Owinを3.0.0から3.0.1に更新(この更新が問題であることが判明-インストールしたい https://www.nuget.org/packages/IdentityServer3.AccessTokenValidation/

enter image description here ローカルで動作しますIIS Express

ただし、Azure Webサイトに発行します(Azureの宛先で追加のファイルを削除して、VSから直接発行します)。 Azure Webサーバーからもすべてのファイルを再起動して削除しました。

enter image description here

web.config変換は大丈夫に見える

<dependentAssembly>
   <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
   <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />   
</dependentAssembly>

EditBruce Chenの答えは私をKudu(Azure-開発ツール、高度なツール)の方向に向けました

enter image description here

Owin dllをダウンロードしましたが、バージョン3.0.0は間違っていました。

修正するには、ソリューションからすべてのパッケージアーティファクトを消去しました

git clean -xfd(注意してください)

その後、再構築

7
Dave Mateer

ファイルまたはアセンブリ 'Microsoft.Owin、Version = 3.0.1.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。

一般に、これは、.NETアセンブリローダーが、参照されている特定のバージョンのアセンブリを見つけられなかったことを意味します。バージョン3.0.1.0のこのアセンブリがAzure Webサイトで見つかり、バージョンがKUDUまたはFTPクライアントを介してweb.configの定義と一致することを確認してください。

あなたが言ったように、それはIIS Expressでローカルに動作します。KUDUまたはFTPクライアント経由でAzureにWebサイトコンテンツを手動でデプロイしてみて、動作するかどうかを確認してください。

2
Bruce Chen

Nugetパッケージに3.0.1というラベルが付けられているにもかかわらず、nugetによってインストールされたリファレンスにはバージョン3.0.0があったため、これにも数時間を費やしました。

古いバージョンを新しいバージョンよりも新しいものにすると、問題が解決しました。

      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.0.0"/>
      </dependentAssembly>

*編集:私のバージョンが3.0.0.0のままだった理由は(確かではありませんが)binフォルダーが私のリポジトリに引っかかり、nugetがdllを上書きしたくなかったためだと思います

4
vsmash

現在お持ちのバージョンではなく、新しいバージョンが必要です。 Visual Studioを使用している場合は、プロジェクトを右クリックします-> NuGetパッケージの管理->更新-> Owin nugetを選択-> [更新]をクリックします。本日現在、最新バージョンは4.0.0です。それがうまくいくことを願っています!

3
Sen Alexandru