找不到我怀疑的答案,希望有人能澄清一下.
我创建了一个虚拟解决方案
> 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所在的同一文件夹中,后者将完全覆盖之前的文件.