在.Net Core MVC App中导入.Net Framework 4.5库

时间:2016-09-15 11:20:38

标签: .net asp.net-core-mvc

我尝试将.NET Framework 4.5自己的dll添加到.NET Core Project中,但我不能。我也尝试在project.json文件中更改某些内容但没有结果。我也尝试制作自定义的本地Nuget源,但它对我不起作用。 任何人都可以知道正确的解释我该怎么做?

见下面的屏幕: import .net framework 4.5 dll to .NET core

1 个答案:

答案 0 :(得分:1)

更新

从.NET Core 2.0开始,现在可以完成此操作:https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/#reference-net-framework-libraries-from-net-standard

您无法在.NET Core项目中引用.NET Framework 4.5程序集,只能引用其他.NET Core程序集。

如果您想使用ASP.NET Core 1并仍然能够引用.NET" Full"在程序集中,您必须创建一个面向.NET Framework而不是.NET Core的ASP.NET应用程序。您可以转到创建新项目 - > Visual C# - >网络 - > ASP.NET核心Web应用程序(.NET Framework)。

您还可以更改project.json文件以引用完整的.NET Framework,如下所示:

"frameworks": {
    "net461": { }
}

此外,如果您愿意编写特定于平台的代码并使用预编译器指令,则可以在单个应用程序上定位多个框架。

要做到这一点,只需将net461添加到现有应用中,并netcoreapp1.0旁边。但请注意,您必须为每个框架指定依赖项。所以你的project.json文件看起来像这样:

"frameworks": {
    "netcoreapp1.0": {
        "dependencies": {
            "Microsoft.NETCore.App": { "type":"platform", "version": "1.0.0" }
        },
        "imports": "dnxcore50"
    }
    "net461": { 
        "dependencies": {"MyNet45Assembly"}
    }
}

然后在您的代码中,您必须使用预编译器指令来检测您的应用程序在哪个平台上运行。例如:

#if NET461
using MyNet45Assembly.Types;
#endif

// ...

#if NET461
var v = new MyNet45AssemblyType();
#endif