无法加载文件或程序集'netstandard,版本 = 2.0.0.0

Posted

技术标签:

【中文标题】无法加载文件或程序集\'netstandard,版本 = 2.0.0.0【英文标题】:Could not load file or assembly 'netstandard, Version=2.0.0.0无法加载文件或程序集'netstandard,版本 = 2.0.0.0 【发布时间】:2018-10-04 15:43:40 【问题描述】:

部署 .net framework 4.5.2 web api 后出现以下错误。

无法加载文件或程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 或其依赖项之一。系统找不到指定的文件。`

这不会发生在所有端点上,只有一个,我正在使用 Microsoft.Xrm.Sdk。 问题是它刚刚开始发生,没有更新任何包。最糟糕的是,在调试时它不会在本地发生,即使使用发布模式构建也是如此。

我对正在部署的服务器没有太多控制权,但我知道它是在 64 位 Windows Server Core 2012 R2/1.2.0 (aws) 上运行的 IIS 8.5。开始发生此问题时,机器尚未更改其配置。

这是完整的堆栈跟踪:

在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型) 在 Microsoft.Xrm.Sdk.IOrganizationService.Execute(组织请求请求) 在 Microsoft.Xrm.Sdk.Client.OrganizationServiceProxy.ExecuteCore(组织请求请求) 在 Microsoft.Xrm.Sdk.Client.OrganizationServiceContext.Execute(组织请求请求) 在 Microsoft.Xrm.Sdk.Linq.QueryProvider.RetrieveEntityCollection(OrganizationRequest 请求,NavigationSource 源) 在 Microsoft.Xrm.Sdk.Linq.QueryProvider.Execute(QueryExpression qe,布尔 throwIfSequenceIsEmpty,布尔 throwIfSequenceNotSingle,投影投影,NavigationSource 源,List`1 链接查找,字符串和 pagingCookie,布尔和更多记录) 在 Microsoft.Xrm.Sdk.Linq.QueryProvider.Execute[TElement](QueryExpression qe,布尔 throwIfSequenceIsEmpty,布尔 throwIfSequenceNotSingle,投影投影,NavigationSource 源,List`1 链接查找) 在 Microsoft.Xrm.Sdk.Linq.QueryProvider.Execute[TElement](表达式表达式) 在 Microsoft.Xrm.Sdk.Linq.QueryProvider.System.Linq.IQueryProvider.Execute[TResult](表达式表达式) 在 MyCrmLibrary.Crm.GetUser(Guid id) 在 MyLibrary.Services.User.UserService.c__DisplayClass8_0.b__2() 在 System.Threading.Tasks.Task`1.InnerInvoke() 在 System.Threading.Tasks.Task.Execute() --- 从先前抛出异常的位置结束堆栈跟踪--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 MyLibrary.Services.User.UserService. d__8.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 C:\\myapi\\Controllers\\MyController.cs:line 143 中的 MyApi.Controllers.MyController.d__19.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Threading.Tasks.TaskHelpersExtensions.d__3`1.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(任务任务) 在 System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()--- 堆栈跟踪从上一个引发异常的位置结束--- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在 System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()

我如何知道可能导致问题的原因?

【问题讨论】:

【参考方案1】:

这是另一个程序集的问题。使用 Fuslogvw.exe (Assembly Binding Log Viewer) 查看依赖关系。

【讨论】:

以上是关于无法加载文件或程序集'netstandard,版本 = 2.0.0.0的主要内容,如果未能解决你的问题,请参考以下文章

.NET Standard依赖问题,吐血推荐未能加载文件或程序集“netstandard, Version=2.0.0.0, Culture=neutral

Visual Studio 2017 - 无法加载文件或程序集“System.Runtime,Version=4.1.0.0”或其依赖项之一

无法加载文件或程序集 'PayPalAdaptivePaymentsSDK,版本 = 2.12.117.0

无法加载文件或程序集'WebGrease,版本 = 1.5.1.25624 - 或任何其他版本

无法加载文件或程序集'Ninject 版本 4.0.0.0

无法加载文件或程序集 'Microsoft.SqlServer.Smo,版本 = 10.0.0