【问题标题】:Could not load file or assembly 'netstandard' or one of its dependencies无法加载文件或程序集“netstandard”或其依赖项之一
【发布时间】:2019-09-13 16:54:12
【问题描述】:

我将我的解决方案 ElasticSearch.net 和嵌套库升级到 7.1.0 版本。 部署代码后出现以下错误:

BadImageFormatException: Could not load file or assembly 'netstandard' or one of its dependencies. Reference assemblies should not be loaded for execution.  They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)
System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
   System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +225
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +110
   System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +22
   System.Reflection.Assembly.Load(String assemblyString) +34
   System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +48

我尝试将库复制到我部署的服务器,但这不起作用。

升级详情: 1.)ElasticSearch.net 5.6.1 到 7.1.0

2.)嵌套 5.6.1 到 7.1.0

3.) .NetFramework 4.7.3 已安装

4.) VS2017

从 nuget 包管理器升级。

【问题讨论】:

  • 在部署最新版本之前,您是否尝试从服务器中删除 bin 目录?
  • 更多关于框架(Desktop CLR、Core CLR)、版本、环境(安全权限)、升级步骤(来自哪个版本)的上下文,将有助于更好地构建您的问题
  • 因为 elasticsearch.net 依赖于 NETStandard.Library 2.0,我添加了这个库。我必须添加 NETStandard.Library.NETFramework 吗?
  • @Rob.yes 我试过了
  • 项目的目标是什么框架版本?你提到了.NetFramework 4.7.3 installed,但这是你项目的目标吗?

标签: elasticsearch nest .net-framework-version elasticsearch.net


【解决方案1】:

通过在 csproj 文件中手动添加 netstandard 库的引用,问题得到解决,如下所示:

<Reference Include="netstandard">
  <Private>True</Private>
</Reference> 

上述解决方法来自 - You must add a reference to assembly 'netstandard, Version=2.0.0.0

【讨论】:

    猜你喜欢
    • 2021-12-12
    • 2012-01-14
    • 1970-01-01
    相关资源
    最近更新 更多