gpt4 book ai didi

c# - 将 .NET Core 与旧版 .NET 框架 dll 结合使用

转载 作者:可可西里 更新时间:2023-11-01 08:37:00 25 4
gpt4 key购买 nike

我可以将 .NET Core 与旧版 .NET Framework dll 一起使用吗?答案似乎是否定的......但我只能找到引用project.json 的资源,它不再存在。

我创建了一个新的 .NET 核心库并尝试引用旧的 .NET 框架 DLL。当我尝试调入 DLL 时,VS 2017 提示我没有正在寻找的 Stream 对象。

它建议我引用 mscorlib.dll 或安装 NuGet 包。

快速帮助未能引用 mscorlib.dll。如果我手动引用它,我会收到以下错误:

The type 'TargetFrameworkAttribute' exists in both 'mscorlib,Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and'System.Runtime, Version=4.1.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a' C:\Users...\AppData\Local\Temp.NETCoreApp,Version=v1.1.AssemblyAttributes.cs

NuGet 包是 Microsoft.NETFx2.0。快速帮助安装失败。如果我从命令行运行它:

> PM> install-package microsoft.netfx20   GET
> https://api.nuget.org/v3/registration2-gz/microsoft.netfx20/index.json
> OK
> https://api.nuget.org/v3/registration2-gz/microsoft.netfx20/index.json
> 46ms Restoring packages for ... Install-Package : Package
> Microsoft.NetFX20 1.0.3 is not compatible with netcoreapp1.1
> (.NETCoreApp,Version=v1.1). Package Microsoft.NetFX20 1.0.3 supports:
> net20 (.NETFramework,Version=v2.0)At line:1 char:1
> + install-package microsoft.netfx20
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> + CategoryInfo : NotSpecified: (:) [Install-Package], Exception
> + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
> Install-Package : One or more packages are incompatible with
> .NETCoreApp,Version=v1.1.At line:1 char:1
> + install-package microsoft.netfx20
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> + CategoryInfo : NotSpecified: (:) [Install-Package], Exception
> + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
> Install-Package : Package restore failed. Rolling back package changes
> for .At line:1 char:1
> + install-package microsoft.netfx20
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> + CategoryInfo : NotSpecified: (:) [Install-Package], Exception
> + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
> Time Elapsed: 00:00:00.8035644

最佳答案

困难的话题。通常 .NET Framework 和 .NET Core 是不兼容的。它们针对一组不同的程序集(mscorlib 与 System.Runtime),这会导致不兼容,因为类型的所有用法都以该类型来自的程序集为前缀。

从 .NET Core 2(目前处于预览阶段)开始,您可以通过不可见的兼容性填充程序引用 .NET Framework 程序集。这允许您引用程序集并成功编译。

虽然它不能保证应用程序会成功运行,因为 .NET Core 不提供 .NET Framework 中的所有 API。如果是这种情况,您将在运行时得到 PlatformNotSupportedExceptionMissingTypeException 和 friend 。

关于c# - 将 .NET Core 与旧版 .NET 框架 dll 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45260792/

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