gpt4 book ai didi

c# - 具有程序集依赖性的 NGen 错误

转载 作者:行者123 更新时间:2023-11-30 17:52:07 25 4
gpt4 key购买 nike

我有一个问题,这显然不是新问题,但我似乎仍然找不到答案。

我正在使用适用于 .NET 的 Google Analytics API,并且在尝试让程序集很好地协同工作时遇到了困难。当我通过 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 的输出中发现的错误:

无法加载程序集 Google.Apis 的依赖项 System.Net.Http.Primitives,Version=1.4.0.28227,Culture=neutral,PublicKeyToken=null 因为以下错误:找到的程序集的 list 定义不匹配装配引用。 (HRESULT 异常:0x80131040)

无法加载程序集 DotNetOpenAuth 的依赖项 System.Web.Mvc,Version=4.0.0.11165,Culture=neutral,PublicKeyToken=2780ccd10d57b246,因为出现以下错误:找到的程序集的 list 定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

无法加载程序集 DotNetOpenAuth、Version=4.0.0.11165、Culture=neutral、PublicKeyToken=2780ccd10d57b246 的依赖项 log4net,因为出现以下错误:找到的程序集的 list 定义与程序集引用不匹配。 (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 包时构建的,但我不明白为什么程序集绑定(bind)重定向不能阻止这些来自 NGen 的错误。

如果有人能帮我指出正确的方向,我将不胜感激!谢谢!

最佳答案

您是否尝试过使用/ExeConfig 将应用程序的配置文件提供给 NGEN?对于 Web 应用程序,您可能需要将 web.config 复制到 app.exe.config 并将路径传递到 Web 应用程序目录中不存在的 app.exe。

关于c# - 具有程序集依赖性的 NGen 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18670117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com