c# – .net core classlibrary调用.net框架类库

找不到我怀疑的答案,希望有人能澄清一下.

我创建了一个虚拟解决方案

> 1个类库(.net框架)
> 1 .net核心库

试图引用任何一种方式,但我不能,它们不兼容,很好有道理.

现在我的问题

我有一个实用类库(.net框架),包含扩展,帮助等…
winforms-wpf-asp.net mvc 4,5应用程序现在使用的.net核心事件它在我看来我不能再使用这个库,除非我将它移植到.net核心,然后我不能使用我的其他应用.

什么是正确的方法?

我错过了明显的吗?

最佳答案 通过简单地使用共享项目,在普通的.NET库和Core项目之间共享代码对我来说不起作用,因为我无法从Core项目中引用它.

然而,通过一个小技巧,我可以使它工作.

让我解释一下这个文件夹/文件结构:

[ProjectName] // Root of Core project
    project.json
    [ProjectName].xproj

    Shared // Root of Shared project
        [ProjectName].Shared.projitems
        [ProjectName].Shared.shproj 
        // -- Source files here --

    Net // Root of .NET project
        [ProjectName].csproj
        Properties
            AssemblyInfo.cs // For both Core and .NET project
        // NO source files here

因此,您当然需要3个项目:Core项目,普通.NET项目和Shared项目.
Shared项目包含所有源文件.
.NET项目引用了共享项目,因此它也包含这些文件.
Core项目可以看到Shared项目拥有的所有文件,因此它也具有相同的文件.

而已.您现在可以拥有.NET和Core项目的公共源代码文件.

几点说明:

>不要将.shroj和.csproj放在同一个文件夹中.对我来说,它完全关闭了VS(2015)中的intellisense.这些信息给我带来了很多痛苦……
>您可以使用#if -s来微调公共代码
>您也可以使用上述文件夹结构在.NET项目中使用NuGet 2.

>注意,如果您将(NuGet 2)packages.config放入(NuGet 3)project.json所在的同一文件夹中,后者将完全覆盖之前的文件.

点赞