0

新しい MVC4 サイトを作成し、実行を押して動作することを確認し、次のコマンドを実行しました。

インストール パッケージ PiranhaCMS.Mvc

そして、もう一度実行を押しました。これにより、次のエラーが表示されます。

ファイルまたはアセンブリ 'DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

OAuth の削除に関連するものを除いて、このスレッドからすべての高評価のソリューションを試しました (使用したいため)。

私は試した:

  • bin および obj フォルダーを削除します。
  • Install-Package Microsoft.AspNet.WebPages.OAuth による Oauth の再インストール
  • クリーン ソリューション (他の 2 つのオプションと組み合わせて)

まだ運がありません、何かアイデアはありますか?

編集1:

OpenAuth アセンブリのバージョンに関して、インストールによって Web.config にいくつかの変更が加えられたことに気付きました。

オリジナル:

  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
    <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
  </dependentAssembly>

新しい

  <dependentAssembly>
    <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /><assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /></dependentAssembly>

Piranha は、MVC4 が利用可能であると想定しているものを変更していると思いますが、dll 自体は変更していませんか??

編集2

Piranha が複数のdependentAssembly ノードから 1 を削除したようです (上記の編集のように)。問題は、それらを元に戻すことができるかどうか、または代わりにピラニアを壊すかどうかです...

編集3

古い値を貼り付け直すと問題が解決し、サイトに新しい Web サイトのインストール画面が表示されるようになりました。ただし、これが他の何かを壊したかどうかはまだわかりません。

の内容を web.config で次のように置き換えました。

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-1.3.0.0" newVersion="1.3.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

また、行をコメントアウトする必要がありました

<!--<forms loginUrl="~/Account/Login" timeout="2880" />-->:

誰かが実際に何が間違っているかを知っていて、私の「修正」が良い解決策である場合、それは素晴らしい答えになるでしょう..

4

1 に答える 1