我们有一个Visual Studio C#解决方案,其中包含多个项目,包括.NET Standard类库,.NET Framework应用程序(因为它们使用在Framework上编写的第三方引用)和.NET Core应用程序。
以前这些项目使用过:
我们不得不做一些奇怪的事情。我们拥有托管ServiceStack服务的.NET Core应用程序,还有具有ServiceStack客户端的.NET Framework应用程序,并且两个应用程序都在引用包含ServiceStack请求对象的.NET Standard类库。不幸的是,ServiceStack模块的Framework和Core版本不兼容,尤其是在Interfaces组件中。因此Framework应用程序必须引用ServiceStack。*。Core DLL(因此mythz告诉我们,它解决了问题)。
现在我们已将代码升级到
代码可以很好地编译,但是当我们运行它时,我们无法在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:line 75
中的Stitch.Logic.Coverage.ExtentsActor.PostCellExtentRequest(CellExtentsRequest请求)处内部异常1: TypeInitializationException:“ ServiceStack.Text.Env”的类型初始值设定项引发了异常。
内部异常2: FileNotFoundException:无法加载文件或程序集'System.Runtime.InteropServices.RuntimeInformation,版本= 4.0.2.0,区域性=中性,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。
内部异常3: FileNotFoundException:无法加载文件或程序集“ System.Runtime.InteropServices.RuntimeInformation,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。
谁能告诉我原因,更重要的是,如何解决此问题?
答案 0 :(得分:2)
这是一个具有约束力的问题,请先尝试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程序包和程序集绑定,删除/packages
,/bin
和/obj
文件夹,然后再次添加ServiceStack NuGet程序包。 / p>