gpt4 book ai didi

c# - 为什么我们在升级到 Core 2.1 和 Framework 4.7.2 后在 ServiceStack 中收到 TypeIntializer Exception?

转载 作者:行者123 更新时间:2023-11-30 16:39:43 25 4
gpt4 key购买 nike

我们有一个 Visual Studio C# 解决方案,其中包含多个项目,包括 .NET Standard 类库、.NET Framework 应用程序(因为它们使用在 Framework 上编写的第 3 方引用)和 .NET Core 应用程序。

以前这些项目使用过:

  • .NET 标准 2.0
  • .NET 核心 2.0
  • .NET Framework 4.6.1
  • ServiceStack 5.1.0

我们不得不做一些有点奇怪的事情。我们有托管 ServiceStack 服务的 .NET Core 应用程序,我们有作为 ServiceStack 客户端的 .NET Framework 应用程序,这两个应用程序都引用了一个包含 ServiceStack 请求对象的 .NET 标准类库。不幸的是,ServiceStack 模块的框架和核心版本不兼容,尤其是在接口(interface)组件中。所以框架应用程序必须引用 ServiceStack.*.Core DLL(mythz 告诉我们,它解决了这个问题)。

现在我们已经将代码升级为

  • .NET 标准 2.0
  • .NET 核心 2.2
  • .NET Framework 4.7.2
  • ServiceStack 5.4.0

代码编译得很好,但是当我们运行它时,我们无法在 Framework 应用程序中实例化 JsonServiceClient。

  using (var client = new JsonServiceClient(_config.PropagationUrl))
{
...
}

上面代码第一行抛出如下异常:

System.TypeInitializationException HResult=0x80131534 Message=“ServiceStack.ServiceClientBase”的类型初始值设定项引发异常。 源=ServiceStack.Client 堆栈跟踪: 在 ServiceStack.ServiceClientBase..ctor() 在 ServiceStack.JsonServiceClient..ctor(String baseUri) 在 C:\Work\TMobile\stitch\src\Stitch.Logic\Coverage\Actors\ExtentsActor.cs 中的 Stitch.Logic.Coverage.ExtentsActor.PostCellExtentRequest(CellExtentsRequest 请求):第 75 行

内部异常 1: TypeInitializationException:“ServiceStack.Text.Env”的类型初始值设定项引发异常。

内部异常 2: FileNotFoundException:无法加载文件或程序集“System.Runtime.InteropServices.RuntimeInformation,Version=4.0.2.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。

内部异常 3: FileNotFoundException:无法加载文件或程序集“System.Runtime.InteropServices.RuntimeInformation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。

谁能告诉我为什么,更重要的是,如何解决这个问题?

最佳答案

这是一个绑定(bind)问题,请先尝试 adding or removing the Assembly binding information for System.Runtime.InteropServices.RuntimeInformation :

<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>

如果仍未解决,请尝试删除所有 ServiceStack NuGet 包和程序集绑定(bind),删除 /packages/bin/obj 文件夹并再次添加 ServiceStack NuGet 包。

关于c# - 为什么我们在升级到 Core 2.1 和 Framework 4.7.2 后在 ServiceStack 中收到 TypeIntializer Exception?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636578/

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