找不到我怀疑的答案,希望有人可以澄清。
我用
创建了一个虚拟解决方案尝试引用任何一种方式,但我不能,它们不兼容,很好有道理。
现在我的问题
我有一个实用类库(.net框架),包含扩展,帮助等... winforms-wpf-asp.net mvc 4,5应用程序现在使用的.net核心事件它在我看来我不能再使用这个库,除非我将它移植到.net核心,然后我不能使用我的其他应用程序。
什么是正确的方法?
我错过了明显的吗?
答案 0 :(得分:2)
通过简单地使用共享项目,在普通.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项目
共享项目包含所有源文件
.NET项目引用了共享项目,因此它也有这些文件
Core项目可以看到Shared项目拥有的所有文件,因此它也有相同的文件。
那就是它。您现在可以拥有.NET和Core项目的公共源代码文件。
一些注意事项:
.shroj
和.csproj
放入同一文件夹中。对我来说,它完全关闭了VS(2015)中的intellisense。这些信息给我带来了很多痛苦...... #if
-s来微调公共代码packages.config
放入(NuGet 3)project.json
所在的同一文件夹中,后者将完全覆盖之前的文件。 / LI>
答案 1 :(得分:0)
您可以尝试使用共享库项目。它可以说是针对引用应用程序/库的平台进行编译的。这使您能够创建针对不同平台的类库,而无需复制任何代码,但可能需要一些#if ...
https://blogs.msdn.microsoft.com/dotnet/2014/04/21/sharing-code-across-platforms/