3

どうやら新しい問題ではないようですが、まだ答えが見つからないようです。

Google の Analytics API for .NET を使用していますが、アセンブリをうまく連携させるのに苦労しています。Visual Studio 2012 でビルドすると、ビルド エラーは発生しません。ただし、NGen を使用してプロジェクトをプリコンパイルし始めると、多くの不適切なアセンブリ参照が表示されます。

MVC 4、Visual Studio 2012、および最新の Google.Apis パッケージ (現時点では 1.5.0.1-beta) を使用しています。

問題のプロジェクトにインストールした .dll の / バージョンは次のとおりです。

DotNetOpenAuth, Version 4.0.0.11165  
System.Web.Mvc, Version 4.0.0.0  
System.Net.Http.Primitives, Version 4.2.13.0  
log4net, Version 1.2.11.0
Google.Apis, Version 1.5.0.1-beta

NGen の出力で見つけたエラーは次のとおりです。

Failed to load dependency System.Net.Http.Primitives of assembly Google.Apis, Version=1.4.0.28227, Culture=neutral, PublicKeyToken=null because of the following error : The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Failed to load dependency System.Web.Mvc of assembly DotNetOpenAuth, Version=4.0.0.11165, Culture=neutral, PublicKeyToken=2780ccd10d57b246 because of the following error : The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Failed to load dependency log4net of assembly DotNetOpenAuth, Version=4.0.0.11165, Culture=neutral, PublicKeyToken=2780ccd10d57b246 because of the following error : The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

そして、これが私がそのプロジェクトのweb.configに持っているものです:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <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="0.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="log4net" publicKeyToken="669e0ddf0bb1aa2a" />
    <bindingRedirect oldVersion="1.0.0.0-1.2.11.0" newVersion="1.2.11.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.2.13.0" newVersion="4.2.13.0" />
  </dependentAssembly>
</assemblyBinding>
</runtime>

そのほとんどは、NuGet を使用して Google.Apis パッケージをインストールしたときに構築されたと思いますが、アセンブリ バインディング リダイレクトが NGen からのこれらのエラーを防げない理由がわかりません。

誰かが私を正しい方向に向けるのを助けることができれば、本当に感謝しています! ありがとうございました!

4

1 に答える 1