.NET Core 5.0 程序集能否使用面向 .NET Framework 4.8 的程序集?

Joe*_*Joe 3 c++ c++-cli .net-core .net-5 .net-framework-4.8

我的 C# 程序集目前都面向 .NET Core 3.1。它们都使用我针对 .NET Framework 4.8 的 C++/CLI 程序集(称为“MySdk”)。这工作正常。

今天我尝试将 C# 程序集更新到 .NET 5.0。突然间,他们甚至都没有看到已经构建好的 .NET FW 4.8“MySdk”程序集。构建过程给了我这样的输出:

> 2>------ Build started: Project: MyApp.Core, Configuration: Debug x64
> ------ 2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2123,5):
> warning MSB3245: Could not resolve this reference. Could not locate
> the assembly "MySdk". Check to make sure the assembly exists on disk.
> If this reference is required by your code, you may get compilation
> errors.
Run Code Online (Sandbox Code Playgroud)

显而易见的解决方案是将 C++/CLI 程序集更新为 .NET 5。我想尽快这样做,但我不知道是否可行。

但让我们假设现在这不是一个选择。.NET 5 程序集使用 .NET FW 4.8 程序集是否有效?这应该工作吗?还有什么我可以做的让我的 .NET 5 程序集看到并使用这个东西吗?

Joe*_*Joe 10

事实证明,我困惑的原因是如此愚蠢,以至于我都不好意思发布它。但我会以防万一其他人犯了和我一样的错误。

将 .NET Core 3.1 应用更新到 .NET 5.0 时,默认构建输出子文件夹从“netcoreapp3.1”更改为“net5.0-windows”。但是我复制单独构建的 C++/CLI 程序集的构建脚本正在将其复制到 .NET Core 3.1(“netcoreapp3.1”)的旧子文件夹中。

换句话说,它与兼容性无关。程序集被复制到错误的地方

所以我的问题的答案是“是”。

  • 您间接地回答了我对 .NET 5 是否可以引用 4.8 dll 的好奇心。谢谢。这是我在 bing 搜索“can .net 3.1 Consumer .net 4.8 dlls?”中的倒数第二个结果。 (2认同)