.NET Core类库调用.NET Framework类库

4

我无法找到我的疑问的答案,希望有人能够澄清。

我创建了一个虚拟的解决方案,其中包括:

  • 1 个类库(.net framework)
  • 1 个 .net core 类库

我尝试通过引用这两个库来实现它们之间的兼容性,但由于它们不兼容,所以我无法实现。这很好理解。

现在我的问题是:

我有一个实用程序类库(.net framework),其中包含扩展、辅助等内容... 它被 winforms-wpf-asp.net mvc 4、5 应用程序使用,但随着 .net core 的出现,我似乎不能再使用这个库,除非我将其移植到 .net core,但那样我就不能再使用它来支持我的其他应用程序。

哪种方法是正确的?

我有没有遗漏什么?


当你说“.net standard”时,你是指旧的.Net Framework还是新的.Net Platform Standard?而你是如何创建.Net Core库的? - svick
@svick 是的,这是“旧”的 .net Framework。使用 aspnetcore rc2 附带的模板创建了 .net core 库。 - developer9969
2个回答

3
使用共享项目在普通.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

因此,您需要三个项目:一个核心项目、一个普通的.NET项目和一个共享项目。
共享项目包含所有源文件。
.NET项目引用了共享项目,因此它也有这些文件。
核心项目可以看到共享项目拥有的所有文件,因此它也具有相同的文件。
就是这样。现在您可以为.NET项目和Core项目拥有共同的源代码文件。
一些注意事项:
  • 永远不要将.shroj和.csproj放在同一个文件夹中。对我来说,在VS(2015)中完全关闭了智能感知。这个信息给我带来了很多痛苦...
  • 您可以使用#if来微调公共代码
  • 您还可以在上述文件夹结构中在.NET项目中使用NuGet 2。
    • 请注意,如果您将(NuGet 2)packages.config放入与(NuGet 3)project.json位于同一文件夹中,则后者将完全覆盖前者。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接