基于 .NET Framework 4.5.2 的控制台应用程序与基于 .NET 6 的类库项目的兼容性问题

问题描述 投票:0回答:1

以下是与开发环境相关的信息:

我有一个控制台项目,使用以下方法创建:

• Microsoft Visual Studio 2019 企业版

• .NET Framework 4.5.2

• C# 5.0

我有一个类库项目,使用以下方法创建:

• Microsoft Visual Studio 2022 企业版

• .NET 6.0

• C# 10

在 Visual Studio 2019 中,我尝试在控制台项目中引用类库 DLL,幸运的是,它没有抛出任何错误。它构建正确,并且没有错误。

但是,当我作为独立运行基于 .NET Framework 4.5.2 的控制台应用程序时,它会引发以下错误:

System.IO.FileNotFoundException
HResult=0x80070002
Message=Could not load file or assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Source=<Cannot evaluate the exception source>
StackTrace:
<Cannot evaluate the exception stack trace>

我检查了Nuget Package Manager,只找到了以下最新版本

System.Runtime版本4.3.1(最新版本)

奇怪的是,异常抱怨 System.Runtime,Version=6.0.0.0

但是,Nuget 包管理器指出最新的 System.Runtime 版本是 4.3.1

无论如何,我确实成功地将最新的 System.Runtime 版本 4.3.1 安装到我基于 .NET Framework 4.5.2 的控制台项目中。此外,它构建正确,并且没有错误。

但是,当我作为独立运行基于 .NET Framework 4.5.2 的控制台应用程序时,它会抛出以下错误:

System.IO.FileNotFoundException
HResult=0x80070002
Message=Could not load file or assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Source=<Cannot evaluate the exception source>
StackTrace:
<Cannot evaluate the exception stack trace>

有人可以告诉我如何解决上述兼容性问题吗?

console-application .net-6.0 compatibility .net-framework-version class-library
1个回答
0
投票

@hans-passant 感谢您的评论。

顺便说一句,我只是想提一下以下几点。

将基于 .NET6 的类库与基于 .NET Framework 4.5.2 的解决方案一起使用会导致兼容性问题。

在做了一些调查和研究之后,我们可以考虑重构所述类库的选项,以便它可以容纳具有不同.NET框架的多个客户端项目。以下是一些相关技术指南:

© www.soinside.com 2019 - 2024. All rights reserved.