无法找到我的疑问的答案,希望有人能澄清。
我创建了一个虚拟解决方案
试图参考任何一种方式,但我不能,它们不兼容,罚款是有道理的。
现在我的问题
我有一个实用类库(.net 框架),带有扩展、助手等...
winforms-wpf-asp.net mvc 4,5 应用程序现在使用 .net core 事件,在我看来,我不能再使用这个库了,除非我将它移植到 .net core,然后我就不能使用我的其他应用程序。
正确的做法是什么?
我错过了显而易见的事情吗?
通过简单地使用共享项目,在普通 .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) 中的智能感知。这些信息给我带来了很大的痛苦......
- 您可以使用
#if
-s 微调通用代码
- You can also use NuGet 2 in the .NET project with the above folder structure.
- 请注意,如果您将 (NuGet 2)
packages.config
进入(NuGet 3)所在的同一文件夹project.json
位于,后者将完全覆盖先前的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)